Compare commits

..

42 Commits

Author SHA1 Message Date
Jonathan Castillo (jcs)
b0a1ff9e57 [IMP] subscriptions: overhaul of the basic docs
This commit improves the structure of the Subscription doc and updates
its content (recurring products, subscription plans, sales flow)

task-3222232

Co-authored-by: Xavier Platteau <xpl@odoo.com>
Co-authored-by: Tom Aarab <toaa@odoo.com>"
2023-04-07 18:54:14 +02:00
“Chiara
67f10d3eca [IMP] accounting: update batch payments
closes odoo/documentation#3958

Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
2023-04-06 11:24:46 +02:00
Martin Trigaux
6ae695e477 [I18N] *: export 16.0 source terms 2023-04-06 10:29:53 +02:00
John Holton (hojo)
09de4c79a3 [IMP] Inventory: Update inter-warehouse replenishment
closes odoo/documentation#4043

X-original-commit: 6f6e018db4
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-06 04:17:27 +02:00
KC (ksc)
13320f490f [ADD] sms marketing: added essentials/getting started docs
closes odoo/documentation#4048

X-original-commit: e8ad53cead
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-06 03:16:16 +02:00
Jonathan Castillo (jcs)
2d7a48a65e [IMP] accounting: bank statements in the transactions page
task-3264491

closes odoo/documentation#4036

Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
2023-04-05 21:58:27 +02:00
Melanie Nguyen (meng)
7c4d8c92d6 [FIX] crm: replace old lead scoring content with predictive lead scoring
closes odoo/documentation#4027

X-original-commit: 9f72036be8
Signed-off-by: Melanie Nguyen (meng) <meng@odoo.com>
2023-04-05 19:21:42 +02:00
Tiffany Chang (tic)
7124542ed9 [REF] developer: rewrite sql view as a howto
SQL view was formerly part of the dashboard tutorial which is now
obsolete. Since creating a SQL view as a tutorial does not make sense
anymore, it has been converted into a simple howto.

closes odoo/documentation#4031

Task: 3226581
Signed-off-by: Tiffany Chang <tic@odoo.com>
2023-04-05 14:47:46 +02:00
Tiffany Chang (tic)
e2c880aafe [REM] developer: remove references to web_dashboard view
Since odoo/enterprise#31641 the dashboard view no longer exists since it
is now replaced with spreadsheet_dashboard, therefore we remove it from
the backend Views documentation.

Task: 3226581
Part-of: odoo/documentation#4031
2023-04-05 14:47:46 +02:00
“Audrey
0a384a2a35 [IMP] payment_providers/flutterwave: recommend ticking all checkboxes
task-3254461

closes odoo/documentation#4014

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-04-04 17:08:30 +02:00
Loredana Perazzo
a350dd76f0 [ADD] pos: how to add/modify customer notes from POS UI
Task ID: 2622090

closes odoo/documentation#4010

X-original-commit: 3a0e23f3f9
Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
Signed-off-by: Perazzo Loredana (lrpz) <lrpz@odoo.com>
2023-04-04 17:08:22 +02:00
fdardenne
7e4435deb8 [IMP] create JavaScript howtos
The JavaScript cheatsheet is outdated, we therefore remove it and
replace it by multiple howtos:

- Create a view from scratch
- Extending an existing view
- Create a field from scratch
- Extend an existing field
- Create a client action

There is other subjects to introduce as the web framework is big. Other
future contributions will cover them.

closes odoo/documentation#3969

Signed-off-by: Dardenne Florent (dafl) <dafl@odoo.com>
2023-04-04 16:06:19 +02:00
Tom Aarab (toaa)
4c623b69b1 [ADD] ecommerce: performance monitoring
Adding a doc page on performance monitoring and analysis for eCommerce
websites

closes odoo/documentation#3866

Taskid: 3246984
Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
2023-04-04 16:06:16 +02:00
Zuzanna Luczynska
78c9a7f26d [ADD] field service: default warehouse
task-2948598

closes odoo/documentation#3996

X-original-commit: 40ef1a26f9
Signed-off-by: zulu-odoo <zulu@odoo.com>
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-03 19:40:57 +02:00
oskarenablebanking
cc194eb979 [ADD] accounting: enablebanking
task-3232701

closes odoo/documentation#3993

Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-03 18:42:44 +02:00
Jonathan Castillo (jcs)
d694c6c9f5 [MOV] accounting: structure of bank sync docs
Part-of: odoo/documentation#3993
2023-04-03 18:42:44 +02:00
Benoit Socias
ee8341402a [IMP] tutorials: add warning about mutable global variables
The whole concept of multi-tenancy is not really approached within the
tutorial.

This commit adds a warning about never using mutable global variables
within odoo to seed the idea in the reader's mind.

task-3059110

closes odoo/documentation#3988

X-original-commit: 1ce7166f49
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Benoit Socias (bso) <bso@odoo.com>
2023-04-03 15:42:15 +02:00
Felicious
c4bbd54c5a [IMP]: add manual valuation section
Add images and manual valuation

add ref tag and retitle doc to sentence case

Remove trailing whitespaces

update explanation

closes odoo/documentation#3981

X-original-commit: 71ede7a3d4
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-02 21:00:46 +02:00
Odoo Translation Bot
ca72e32e98 [I18N] Update translation terms from Transifex 2023-04-02 00:40:29 +02:00
“Audrey
67bada80e6 [IMP] Website: review website translation page
task-3255779

closes odoo/documentation#3973

Signed-off-by: auva-odoo <auva@odoo.com>
2023-03-31 18:37:51 +02:00
Xavier
cde27305ee [ADD] attendances: hr and attendances categories + hardware page
Task ID: 3251124

closes odoo/documentation#3956

X-original-commit: 0124878dd4
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-03-29 16:05:34 +02:00
Loan (lse)
cd1f3e4510 [IMP] ePoS: vulgarise the SSL ePos issue
SSL/HTTPS topic is complicated for most of
Odoo customers as it is quite technical.

This PR should help them guide them to better
understand the issue and how to fix it themselves.

Support can't be provided to each device, browsers and OS.
But we did add some guides regarding the more
"popular" ones and some "keyword" to search
online for the others.

closes odoo/documentation#3922

X-original-commit: 415a817c57
Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
Co-authored-by: Loredana Perazzo <lrpz@odoo.com>
2023-03-29 16:05:25 +02:00
Tom Aarab (toaa)
9b0a54b7f2 [IMP] Adyen: additional minimum requirements for users
Adding requirements for users to use Adyen. Forward to master.

closes odoo/documentation#3952

Taskid: 3159712
X-original-commit: 0b234fe203
Signed-off-by: Aarab Tom (toaa) <toaa@odoo.com>
2023-03-29 14:56:57 +02:00
Melanie Nguyen (meng)
a1fce64ce5 [IMP] mail plugins: add instructions to gmail plugin
closes odoo/documentation#3944

X-original-commit: 404d524deb
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-03-29 04:42:41 +02:00
Melanie Nguyen (meng)
fa90d23a90 [IMP] sales: menuselection fix
Fixed a menuselection error and deleted instances of second-person pov
Closes task 3116083

closes odoo/documentation#3939

X-original-commit: f30f6d2003
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-03-29 03:41:01 +02:00
Timothy Kukulka (tiku)
098ecbcb99 [IMP] General: Oauth seemore additions
closes odoo/documentation#3934

X-original-commit: aa4e5d7a01
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-03-29 03:40:58 +02:00
Loredana Perazzo
4a7acf8c02 [IMP] pos: update fiscal positions page
Task ID: 2862506

closes odoo/documentation#3876

Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-03-28 16:39:16 +02:00
Anita (anko)
de8db5a6a0 [IMP] paypal: remove deleted field
Removing no longer used Merchant Account ID field.
task-2854184

closes odoo/documentation#3833

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-03-28 13:17:24 +02:00
Felicious
1ab8e5fb11 [FIX] inventory: fix BoM typo
closes odoo/documentation#3910

X-original-commit: f2010faafc
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-03-28 00:50:15 +02:00
Nicolas (vin)
9cab0fdb75 [IMP] coding_guidelines: fix python code indents
A few python code blocks on the coding guidelines are indented twice
(8 spaces instead of 4), which is not correct.

closes odoo/documentation#3903

X-original-commit: 16176fb508
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2023-03-27 17:40:05 +02:00
Antoine Vandevenne (anv)
af67aac71f [IMP] supported_version: release saas-16.2
closes odoo/documentation#3893

X-original-commit: 697cdad097
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-03-27 17:40:02 +02:00
“Chiara
e89211e451 [IMP] accounting: bank transactions
task-3204835

closes odoo/documentation#3760

Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-03-27 12:32:37 +02:00
Martin Trigaux
faf5949870 [I18N] *: export 16.0 source terms
closes odoo/documentation#3888

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-03-27 10:28:31 +02:00
Timothy Kukulka (tiku)
1904ba574a [IMP] Support: Update What can I expect
closes odoo/documentation#3883

X-original-commit: 406e12822e
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-03-26 09:12:27 +02:00
Odoo Translation Bot
a98372a964 [I18N] Update translation terms from Transifex 2023-03-26 00:40:29 +01:00
Jess Rogers (jero)
ab0d9c239d [IMP] helpdesk: updated ticketing channels setup
closes odoo/documentation#3505

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-03-24 23:09:53 +01:00
LoredanaLrpz
e6fd7db226 [IMP] pos: and update kitchen printing
Task ID: 3235139

closes odoo/documentation#3844

Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
2023-03-24 13:29:01 +01:00
Brandon Seltenrich (BRSE)
b9453515a0 [IMP] inventory: fix sendcloud doc
closes odoo/documentation#3774

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-03-24 11:18:31 +01:00
Jess Rogers (jero)
da2e4a1a60 [IMP] helpdesk: updated teams and stages setup content
closes odoo/documentation#3503

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-03-24 11:18:29 +01:00
Olivier Dony
e6aa5dd01b [FIX] legal: fix some broken links (pdfs, translations)
1) PDF files are generated and stored at the root of the CURRENT_BRANCH
directory. The links to those files are generated at different levels of
the doctree, which makes it impossible to use a relative path.
For example the same "Enterprise Agreement" doc in EN is published on:
 - /16.0/legal/terms/enterprise.html
 - /16.0/fr/legal/terms/enterprise.html

As a workaround, use absolute links for the PDFs. They won't work
locally for now. Can be improved later, as long as we don't break
those links located in various depths of the troctree.

2) The legal constracts aren't translated in all availables languages
(yet), so those links are 404s now. Introduced a conf.py variable
`legal_translations` with the list of languages where translated
contracts are indeed available, and falling back to the EN version
otherwise. Some languages don't have *all* the contracts translated, so
some 404 may remain temporarily.

Forward-port of f69dba70be
2023-03-23 16:42:27 +01:00
LoredanaLrpz
fe08c166bb [IMP] pos: take the half-up out of the last note
Task ID: 3184227

closes odoo/documentation#3854

X-original-commit: f3aafe2f09
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-03-21 12:36:57 +01:00
Tom Aarab (toaa)
c24f6eca7a [ADD] eCommerce: customer interaction
Adding a page on customer interaction and adding redirects. Forward to
master.

closes odoo/documentation#3775

Taskid: 3224716
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-03-21 12:36:49 +01:00
349 changed files with 18738 additions and 45711 deletions

12
conf.py
View File

@@ -213,6 +213,8 @@ sphinx.transforms.i18n.docname_to_domain = (
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
versions_names = {
'master': "Master",
'saas-16.2': "Odoo Online",
'saas-16.1': "Odoo Online",
'16.0': "Odoo 16",
'saas-15.2': "Odoo Online",
'15.0': "Odoo 15",
@@ -318,6 +320,12 @@ latex_documents = [
'odoo_partnership_agreement_es.tex', 'Odoo Partnership Agreement (ES)', '', 'howto'),
]
# List of languages that have legal translations (excluding EN). The keys must be in
# `languages_names`. These translations will have a link to their versions of the legal
# contracts, instead of the default EN one. The main legal documents are not part of the
# translations since they have legal meaning.
legal_translations = ['de', 'es', 'fr', 'nl']
# The name of an image file (relative to this directory) to place at the top of the title page.
latex_logo = 'static/img/odoo_logo.png'
@@ -446,6 +454,10 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
)
)
# Dynamic generation of localized legal doc links
context['legal_translations'] = legal_translations
def _build_url(_version=None, _lang=None):
if app.config.is_remote_build:
# Project root like https://www.odoo.com/documentation

View File

@@ -11,6 +11,10 @@ personal email address or an address created by a custom domain.
`Microsoft Learn: Register an application with the Microsoft identity platform
<https://learn.microsoft.com/azure/active-directory/develop/quickstart-register-app>`_
.. seealso::
- :doc:`/applications/general/auth/azure`
- :doc:`/applications/general/calendars/outlook/outlook_calendar`
Setup in Microsoft Azure Portal
===============================

View File

@@ -11,6 +11,10 @@ email address or an address created by a custom domain.
For more information, visit `Google's documentation
<https://support.google.com/cloud/answer/6158849>`_ on setting up OAuth.
.. seealso::
- :doc:`/applications/general/auth/google`
- :doc:`/applications/general/calendars/google/google_calendar_credentials`
Setup in Google
===============

View File

@@ -26,7 +26,9 @@ This matrix shows the support status of every version.
+-----------------+-------------+----------+-------------+----------------+------------------------+
| | Odoo Online | Odoo.sh | On-Premise | Release date | End of support |
+=================+=============+==========+=============+================+========================+
| Odoo saas~16.1 | |green| | N/A | N/A | February 2023 | |
| Odoo saas~16.2 | |green| | N/A | N/A | March 2023 | June 2023 (planned) |
+-----------------+-------------+----------+-------------+----------------+------------------------+
| Odoo saas~16.1 | |green| | N/A | N/A | February 2023 | April 2023 |
+-----------------+-------------+----------+-------------+----------------+------------------------+
| **Odoo 16.0** | |green| | |green| | |green| | October 2022 | October 2025 (planned) |
+-----------------+-------------+----------+-------------+----------------+------------------------+

View File

@@ -18,6 +18,7 @@ Discover our user guides and configuration tutorials per application.
applications/sales
applications/websites
applications/inventory_and_mrp
applications/hr
applications/marketing
applications/services
applications/productivity

View File

@@ -8,6 +8,7 @@ Bank and cash
:titlesonly:
bank/setup
bank/feeds
bank/bank_synchronization
bank/transactions
bank/reconciliation
bank/interbank

View File

@@ -1,6 +1,8 @@
======================================
Bank synchronization: automatic import
======================================
:show-content:
====================
Bank synchronization
====================
Odoo can synchronize directly with your bank institution to get all bank statements imported
automatically into your database.
@@ -15,9 +17,12 @@ To connect to the banks, Odoo uses multiple web-services:
- **Plaid**: United States of America and Canada
- **Yodlee**: Worldwide
- **Salt Edge**: Europe (:doc:`more information <saltedge>`)
- **Ponto**: Europe (:doc:`more information <ponto>`)
- **EnableBanking**: Scandinavian countries
- :doc:`Salt Edge <bank_synchronization/saltedge>`: Europe
- :doc:`Ponto <bank_synchronization/ponto>`: Europe
- :doc:`Enable Banking <bank_synchronization/enablebanking>`: Scandinavian countries
.. seealso::
:doc:`transactions`
Configuration
=============
@@ -196,7 +201,9 @@ You can update your credentials by going to :menuselection:`Accounting Dashboard
Configuration --> Accounting: Online Synchronization`,open the connection you want to update your
credentials and click on the :guilabel:`Update Credentials` button.
.. seealso::
* :doc:`bank_statements`
* :doc:`ponto`
* :doc:`saltedge`
.. toctree::
:titlesonly:
bank_synchronization/saltedge
bank_synchronization/ponto
bank_synchronization/enablebanking

View File

@@ -0,0 +1,36 @@
==============
Enable Banking
==============
**Enable Banking** is a third-party provider aggregating banking information from bank accounts all
in one place. It offers non-intrusive connectivity to ASPSPs' official APIs across Europe without
storing data.
.. image:: enablebanking/enablebanking.png
:align: center
:alt: Enable Banking logo
**Odoo** synchronizes directly with banks to get access to all bank transactions and automatically
import them into your database.
.. seealso::
- :doc:`../bank_synchronization`
- `Enable Banking website <https://enablebanking.com/>`_
Configuration
=============
Link bank accounts with Odoo
----------------------------
#. Start synchronization by clicking on :menuselection:`Accounting --> Configuration -->
Add a Bank Account`;
#. Select your bank;
#. Make sure you give your consent to share your account information with Odoo by clicking
:guilabel:`Continue authentication`;
.. image:: enablebanking/enablebankingauth.png
:align: center
:alt: Enable Banking authentication page
#. Finally, you are redirected to your bank's login page.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,6 +1,6 @@
======================================
Ponto as bank synchronization provider
======================================
=====
Ponto
=====
**Ponto** is a service that allows companies and professionals to aggregate their accounts in one
place and directly see all their transactions within one app. It is a third-party solution that is
@@ -16,9 +16,9 @@ into your database.
Ponto is a paid third-party provider that can handle the synchronization between your bank accounts
and Odoo. `Its pricing is 4€/month per account/integration <https://myponto.com/en#pricing>`_.
.. note::
You can find more information about bank synchronization :doc:`on this page
<bank_synchronization>`.
.. seealso::
- :doc:`../bank_synchronization`
- :doc:`../transactions`
Configuration
=============
@@ -115,10 +115,3 @@ and we advise you to contact Ponto directly.
.. important::
Using an institution in beta is beneficial for Ponto, it allows them to have real
feedback on the connection with the institution.
.. seealso::
* :doc:`bank_synchronization`
* :doc:`saltedge`
* :doc:`bank_statements`

View File

@@ -1,6 +1,6 @@
==========================================
Salt Edge as bank synchronization provider
==========================================
=========
Salt Edge
=========
**Salt Edge** is a third-party provider that aggregates banking information
from your bank accounts. It supports ~5000 institutions in more than 50
@@ -8,12 +8,15 @@ countries.
.. image:: saltedge/saltedge-logo.png
:align: center
:width: 50%
:alt: Salt Edge Logo
Odoo can synchronize directly with your bank to get all bank statements imported
automatically into your database.
Salt Edge is a free third-party provider.
.. seealso::
- :doc:`../bank_synchronization`
- :doc:`../transactions`
Configuration
=============
@@ -103,9 +106,3 @@ In case you already have a connection with the same credentials present on your
and this synchronization was created with Odoo, you will normally be able to find it by going to
:menuselection:`Accounting --> Configuration --> Online Synchronization`. Please make sure to do an
*Update Credentials* to reactivate the connection.
.. seealso::
* :doc:`bank_synchronization`
* :doc:`ponto`
* :doc:`bank_statements`

View File

@@ -1,13 +0,0 @@
:nosearch:
==========
Bank feeds
==========
.. toctree::
:titlesonly:
feeds/bank_statements
feeds/bank_synchronization
feeds/ponto
feeds/saltedge

View File

@@ -1,62 +0,0 @@
===============
Bank statements
===============
Importing your bank statements allows you to keep track of your bank account transactions and
reconcile them with the ones recorded in Odoo.
We recommend using :doc:`the bank synchronization feature <bank_synchronization>` for more
efficiency. However, if you do not want to use it or if your bank is not yet supported, other
options exist:
- Import the bank statement files delivered by your bank;
- Register the bank statements manually.
Import bank statements files
============================
Odoo supports multiple file formats to import bank statements:
- SEPA recommended Cash Management format (CAMT.053);
- Comma-separated values (.CSV);
- Open Financial Exchange (.OFX);
- Quicken Interchange Format (.QIF);
- Belgium: Coded Statement of Account (.CODA).
To import a file, go to the Accounting dashboard and click on :guilabel:`Import (Statements)` under
the :guilabel:`Bank` window, or click on the drop-down menu (:guilabel:`⋮`) button and then on
:guilabel:`Import Statement`.
.. image:: bank_statements/bank-overview.png
:align: center
:alt: Import a bank statement file in Odoo Accounting
Next, select the file you want to import and click on :guilabel:`Upload`.
Once the file uploaded, the **import widget** helps you set formatting options and **map** the
different columns you want to import. You also can :guilabel:`test` the bank statement file before
importing it to your database.
.. image:: bank_statements/import-bank-statement.png
:align: center
:alt: Register bank statements manually in Odoo Accounting
Register bank statements manually
=================================
If needed, you can also record your bank statements manually. To do so, go to the
:guilabel:`Accounting dashboard` and click on the :guilabel:`Create Statements` under the
:guilabel:`Bank` window. Alternatively, you can click the drop-down menu (:guilabel:`⋮`) button, and
then :guilabel:`New Statement`.
To ease the reconciliation process, make sure to fill out the :guilabel:`Partner` field. You can
also type in the payments references in the :guilabel:`Label` field. Add a new line for each
transaction written on the original bank statement.
.. image:: bank_statements/bank-statements-03.png
:align: center
:alt: Register bank statements manually in Odoo Accounting
.. note::
The **Ending Balance** and the **Computed Balance** should have the same amount. If this is not
the case, make sure there are no mistakes in the transactions amounts.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -91,7 +91,7 @@ Manage and reconcile bank statements
------------------------------------
The next step is to book the bank statements to finalize the transaction by creating,
:doc:`importing <feeds/bank_statements>`, or :doc:`synchronizing <feeds/bank_synchronization>` your
:doc:`importing <transactions>`, or :doc:`synchronizing <bank_synchronization>` your
:guilabel:`Transactions lines`. Fill in the :guilabel:`Ending balance` and click on the
:guilabel:`Reconcile` button.

View File

@@ -125,5 +125,5 @@ line*.
.. seealso::
- :doc:`use_cases`
- :doc:`../feeds/bank_synchronization`
- :doc:`../bank_synchronization`
- :doc:`../../receivables/customer_invoices/cash_discounts`

View File

@@ -102,4 +102,4 @@ right and validate all related payments :
:align: center
.. seealso::
* :doc:`../feeds/bank_synchronization`
:doc:`../bank_synchronization`

View File

@@ -4,7 +4,7 @@ Bank and cash accounts
You can manage as many bank or cash accounts as needed on your database. Configuring them well
allows you to have all your banking data up-to-date and ready for :doc:`reconciliation
<../../bank/reconciliation/use_cases>` with your journal entries.
<../reconciliation/use_cases>` with your journal entries.
In Odoo Accounting, each bank account has a dedicated journal set to post all entries in a dedicated
account. Both the journal and the account are automatically created and configured whenever you add
@@ -33,7 +33,7 @@ To connect your bank account to your database, go to :menuselection:`Accounting
follow the instructions.
.. seealso::
:doc:`../../bank/feeds/bank_synchronization`
:doc:`../bank_synchronization`
Create a bank account
---------------------
@@ -83,7 +83,7 @@ You can edit the accounting information and bank account number according to you
.. seealso::
- :doc:`../../others/multi_currency`
- :doc:`../../bank/feeds/bank_statements`
- :doc:`../transactions`
- :doc:`../../bank/setup/outstanding_accounts`
Suspense account
@@ -132,5 +132,5 @@ Bank feeds
with your database.
.. seealso::
- :doc:`../../bank/feeds/bank_synchronization`
- :doc:`../../bank/feeds/bank_statements`
- :doc:`../bank_synchronization`
- :doc:`../transactions`

View File

@@ -0,0 +1,94 @@
============
Transactions
============
Importing transactions from your bank statements allows keeping track of bank account transactions
and reconciling them with the ones recorded in your accounting.
:doc:`Bank synchronization <bank_synchronization>` automates the process. However, if you do not
want to use it or if your bank is not yet supported, other options exist:
- :ref:`Import bank transactions <transactions/import>` delivered by your bank;
- :ref:`Register bank transactions <transactions/register>` manually.
.. note::
:ref:`Grouping transactions by statement <transactions/statements>` is optional.
.. _transactions/import:
Import transactions
===================
Odoo supports multiple file formats to import transactions:
- SEPA recommended Cash Management format (CAMT.053);
- Comma-separated values (.CSV);
- Open Financial Exchange (.OFX);
- Quicken Interchange Format (.QIF);
- Belgium: Coded Statement of Account (.CODA).
To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal,
click on :guilabel:`Import Transactions`.
.. image:: transactions/import-transactions.png
:alt: Import bank transactions from the bank journal
Next, select the file and upload it.
After setting the necessary formatting options and mapping the file columns with their related Odoo
fields, you can run a :guilabel:`Test` and :guilabel:`Import` your bank transactions.
.. seealso::
:doc:`/applications/general/export_import_data`
.. _transactions/register:
Register bank transactions manually
===================================
You can also record your bank transactions manually. To do so, go to :guilabel:`Accounting
Dashboard`, click on the :guilabel:`Bank` journal, and then on :guilabel:`New`. Make sure to fill
out the :guilabel:`Partner` and :guilabel:`Label` fields to ease the reconciliation process.
.. _transactions/statements:
Statements
==========
A **bank statement** is a document provided by a bank or financial institution that lists the
transactions that have occurred in a particular bank account over a specified period of time.
In Odoo Accounting, it is optional to group transactions by their related statement, but depending
on your business flow, you may want to record them for control purposes.
.. important::
If you want to compare the ending balances of your bank statements with the ending balances of
your financial records, *don't forget to create an opening transaction* to record the bank
account balance as of the date you begin synchronizing or importing transactions. This is
necessary to ensure the accuracy of your accounting.
To access a list of statements, go to your :guilabel:`Accounting Dashboard`, click on the vertical
ellipsis (:guilabel:`⋮`) button next to the bank or cash journal you want to check, then on
:guilabel:`Statements`
Statement creation from the kanban view
---------------------------------------
Open the bank reconciliation view by clicking on the name of the bank journal, and identify the
transaction corresponding to the last transaction of your bank statement. Click on the
:guilabel:`STATEMENT` button when hovering on the upper separator line.
.. image:: transactions/statements-kanban.png
:alt: A "STATEMENT" button is visible when hovering on the line separating two transactions.
Fill out the statement's details and save. The newly created statement includes the previous
transactions following the last statement.
Statement creation from the list view
-------------------------------------
Open the list of transactions by clicking on the name of the bank journal and switching to the list
view. Select all the transactions corresponding to the bank statement, and, in the
:guilabel:`Statement` column, select an existing statement or create a new one by typing its
reference, clicking on :guilabel:`Create and edit...`, filling out the statement's details, and
saving.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -55,7 +55,7 @@ Connect your bank account to your database and have your bank statements synced
so, find your bank in the list, click on *Connect*, and follow the instructions on-screen.
.. note::
:doc:`Click here <../../bank/feeds/bank_synchronization>` for more information about this feature.
:doc:`Click here <../../bank/bank_synchronization>` for more information about this feature.
If your Bank Institution cant be synchronized automatically, or if you prefer not to sync it with
your database, you may also configure your bank account manually by clicking on *Create it*, and
@@ -188,6 +188,6 @@ Send yourself a sample invoice by email to make sure everything is correctly con
.. seealso::
* :doc:`../../bank/setup/bank_accounts`
* :doc:`chart_of_accounts`
* :doc:`../../bank/feeds/bank_synchronization`
* :doc:`../../bank/bank_synchronization`
* :doc:`../../../fiscal_localizations`
* `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_

View File

@@ -103,7 +103,7 @@ The frequency of the invoicing and the services/products invoiced are
defined on the contract.
.. seealso::
- :doc:`/applications/sales/sales/invoicing/subscriptions`
- :doc:`/applications/sales/subscriptions`
Others
======

View File

@@ -1,99 +1,71 @@
==================================================
Batch payments: Batch deposits (checks, cash etc.)
==================================================
==============================
Batch payments by bank deposit
==============================
A **Batch Deposit** groups multiple payments in a single batch. This allows you to deposit several
payments into your bank account with a single transaction. This is particularly useful to deposit
cash and checks.
This feature allows you to list several customer payments and print a **deposit slip**. This ticket
contains the details of the transactions and a reference to the batch deposit. You can then select
this reference during a bank reconciliation to match the single bank statement line with all the
transactions listed in the batch deposit.
A **batch deposit** is a convenient way to group customer payments and deposit them into your bank
account. The feature lets you list multiple payments and generate a detailed deposit slip with a
batch reference. This reference can be used when reconciling to match bank statement lines with
transactions in the batch deposit.
Configuration
=============
To activate the feature, go to :menuselection:`Accounting --> Configuration --> Settings -->
Customer Payments`, activate **Batch Payments**, and click on *Save*.
Payment Method Types
--------------------
To record new payments as part of a Batch Deposit, you have to configure first the Journal on which
you record them.
To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open the Journal
you want to edit, click on *Edit*, and open the *Advanced Settings* tab. In the *Payment Method
Types* section, enable **Batch Deposit**, and click on *Save*.
.. image:: batch/batch-journal-settings.png
:align: center
:alt: Payment Method Types in a journal's advanced settings
.. note::
Your main bank accounts are automatically configured to process batch payments when you activate
the feature.
Go to :menuselection:`Accounting --> Configuration --> Settings --> Customer Payments` and tick
:guilabel:`Batch Payments` to activate the feature.
Deposit multiple payments in batch
==================================
Record payments to deposit in batch
-----------------------------------
Register payments
-----------------
:doc:`Register the payments <recording>` on the bank account on which you plan to deposit them by
opening the *Customer Invoice* for which you received a payment, and clicking on *Register Payment*.
There, select the appropriate Journal linked to your bank account and select *Batch Deposit* as
Payment Method.
Before performing a batch deposit, it is necessary to register each transaction's payment. To do so,
open the corresponding customer invoice and click :guilabel:`Register Payment`. In the pop-up
window, select the :guilabel:`Journal` linked to your bank account and :guilabel:`Batch Deposit` as
the :guilabel:`Payment Method`, and click :guilabel:`Create Payment`.
.. image:: batch/batch-register-payment.png
.. image:: batch/batch-payments.png
:align: center
:alt: Registering a customer payment as part of a Batch Deposit in Odoo Accounting
:alt: Registering a customer payment as part of a batch deposit
Do this step for all checks or payments you want to process in batch.
.. note::
Make sure to write the payment reference in the **Memo** field.
Add payments to a Batch Deposit
Add payments to a batch deposit
-------------------------------
To add the payments to a Batch Deposit, go to :menuselection:`Accounting --> Customers --> Batch
Payments`, and click on *Create*. Next, select the Bank and Payment Method, then click on *Add a
line*.
To add payments to a batch deposit, go to :menuselection:`Accounting --> Customers --> Batch
Payments`, and click :guilabel:`New`. Next, select the :guilabel:`Bank` and choose :guilabel:`Batch
Deposit` as the :guilabel:`Payment Method`.
.. image:: batch/batch-new-inbound.png
.. image:: batch/batch-customer-payment.png
:align: center
:alt: Filling out a new Inbound Batch Payment form on Odoo Accounting
:alt: Filling out a new inbound batch payment form
Select all payments to include in the current Batch Deposit and click on *Select*. You can also
record a new payment and add it to the list by clicking on *Create*.
Click :guilabel:`Add a line`. In the pop-up window, tick all payments to include in the batch
deposit, then click :guilabel:`Select`.
.. image:: batch/batch-payments-selection.png
.. image:: batch/batch-lines-selection.png
:align: center
:alt: Selection of all payments to include in the Batch Deposit
:alt: Selecting all payments to include in the batch deposit
Once done, click on *Validate* to finalize your Batch Deposit. You can then click on *Print* to
download a PDF file to include with the deposit slip that the bank usually requires to fill out.
Once done, click :guilabel:`Validate` to finalize the batch deposit.
Bank Reconciliation
.. tip::
Click :guilabel:`Print` to download a PDF file to include with the deposit slip.
Bank reconciliation
-------------------
Once the bank statements are on your database, you can reconcile the bank statement line with the
*Batch Payment* reference. To do so, start your **Bank Reconciliation** by going to your Accounting
dashboard and clicking on *Reconcile Items* on the related bank account. At the bank statement line,
click on *Choose counterpart or Create Write-off* to display more options, open the *Batch Payments*
tab, and select your Batch Payment. All related payments are automatically added.
Once the bank transactions are on your database, you can reconcile bank statement lines with the
batch payment. To do so, go to the :guilabel:`Accounting Dashboard` and click :guilabel:`Reconcile
Items` on the related bank account. Go to the :guilabel:`Batch Payments` tab to select a specific
batch and click :guilabel:`Validate` to finalize the process.
.. image:: batch/batch-reconciliation.png
:align: center
:alt: Reconciling the batch payment with all its transactions
.. note::
The *Batch Payments* tab won't appear if a Partner is selected for this bank statement line.
.. image:: batch/batch-bank-reconciliation.png
:align: center
:alt: Reconciliation of the Batch Payment with all its transactions
If a check, or a payment, couldn't be processed by the bank and is missing, remove the related
payment before validating the bank reconciliation.
If a specific payment could not be processed by the bank or is missing, remove the related
payment before reconciling.
.. seealso::
- :doc:`recording`

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -26,6 +26,8 @@ They can be applied in various ways:
Configuration
=============
.. _fiscal_positions/mapping:
Tax and Account Mapping
-----------------------

View File

@@ -5,6 +5,14 @@ Adyen
`Adyen <https://www.adyen.com/>`_ is a Dutch company that offers several online payment
possibilities.
.. seealso::
- :ref:`payment_providers/add_new`
- :doc:`../payment_providers`
.. note::
Adyen works only with customers processing **more** than **10 million annually** or invoicing a
**minimum** of **1.000** transactions **per month**.
Configuration
=============

View File

@@ -17,9 +17,12 @@ Configuration on Flutterwave Dashboard
`/payment/flutterwave/webhook` in the :guilabel:`URL` text field.
| For example: `https://yourcompany.odoo.com/payment/flutterwave/webhook`.
#. Fill the :guilabel:`Secret hash` with a password that you generate and save its value for later.
#. Make sure all the remaining checkboxes are ticked.
#. Make sure *all* the remaining checkboxes are ticked.
#. Click on **Save** to finalize the configuration.
.. image:: flutterwave/flutterwave-settings.png
:alt: Flutterwave settings
.. _payment_providers/flutterwave/configure_odoo:
Configuration on Odoo

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -19,7 +19,6 @@ Credentials tab
Odoo needs your **API Credentials** to connect with your PayPal account, which comprise:
- **Email**: your login email address in Paypal.
- **Merchant Account ID**: the code of the merchant account used to identify your Paypal account.
- **PDT Identity Token**: the key used to verify the authenticity of transactions.
- **Use IPN**: whether you want to use Instant Payment Notification. Already checked, you don't have
to change it.
@@ -27,8 +26,6 @@ Odoo needs your **API Credentials** to connect with your PayPal account, which c
You can copy your credentials from your Paypal account and paste them into the related fields under
the **Credentials** tab.
To retrieve the **Merchant Account ID**, log into your Paypal account and go to
:menuselection:`Account menu --> Account Settings --> Business information`.
To set the **PDT Identity Token**, switch to :ref:`developer mode <developer-mode>` and retrieve the
token by following the configuration step :ref:`paypal/enable-pdt`.

View File

@@ -1,6 +1,10 @@
=====
OAuth
=====
======================================
Microsoft Azure sign-in authentication
======================================
Due to specific requirements in Azure's OAuth implementation,
Microsoft Azure OAuth identification is NOT compatible with Odoo at the moment.
Due to specific requirements in Azure's OAuth implementation, Microsoft Azure OAuth identification
is NOT compatible with Odoo at the moment.
.. seealso::
- :doc:`/applications/general/calendars/outlook/outlook_calendar`
- :doc:`/administration/maintain/azure_oauth`

View File

@@ -8,6 +8,10 @@ with their Google account.
This is particularly helpful if your organization uses Google Workforce and you want the employees
within your organization to connect to Odoo with their Google Accounts.
.. seealso::
- :doc:`/applications/general/calendars/google/google_calendar_credentials`
- :doc:`/administration/maintain/google_oauth`
.. _google-sign-in/configuration:
Configuration
@@ -42,7 +46,7 @@ OAuth consent screen
:align: center
:alt: Google oauth consent selection menu
#. Choose one of the options **(Internal / External)** as instructed, and click on *Create*.
#. Choose the option for :guilabel:`internal`, and click on :guilabel:`Create`.
.. image:: google/consent.png
:align: center

View File

@@ -5,6 +5,10 @@ Synchronize Google Calendar with Odoo
Synchronize Google Calendar with Odoo to see and manage meetings from both platforms (updates go
in both directions). This integration helps organize your schedule so you never miss a meeting.
.. seealso::
- :doc:`/applications/general/auth/google`
- :doc:`/administration/maintain/google_oauth`
Setup in Google
===============

View File

@@ -5,6 +5,10 @@ Synchronize Outlook Calendar with Odoo
Synchronizing a user's Outlook Calendar with Odoo is useful for keeping track of their tasks and
appointments across all related applications.
.. seealso::
- :doc:`/applications/general/auth/azure`
- :doc:`/administration/maintain/azure_oauth`
Register the application with Microsoft Azure
=============================================

View File

@@ -0,0 +1,9 @@
:nosearch:
===============
Human resources
===============
.. toctree::
hr/attendances

View File

@@ -0,0 +1,19 @@
:nosearch:
:show-content:
:hide-page-toc:
:show-toc:
===========
Attendances
===========
**Odoo Attendances** functions as a time clock. Employees check in and check out of work, while
managers can see who is available at any given time.
.. seealso::
`Odoo Tutorials: Attendances <https://www.odoo.com/slides/slide/attendances-684>`_
.. toctree::
:titlesonly:
attendances/hardware

View File

@@ -0,0 +1,57 @@
========
Hardware
========
Kiosk management
================
A kiosk is a self-service station that allows employees to check in and check out for work shifts.
There are two ways to set up a kiosk:
- **Laptop and desktop PC**
Running a kiosk in a web browser is the cheapest and most flexible option. You can print employee
badges with any thermal or inkjet printer compatible with your web browser.
- **Tablet and mobile phone (Android or iOS)**
Tablets and mobile phones take up much less space, and their touchscreens are easy to use.
Consider putting them in a secure stand at the front desk or mounting them securely on a wall.
.. tip::
We recommend using an iPad together with the `Heckler Design WindFall Stand
<https://hecklerdesign.com/products/windfall-stand-for-ipad>`_
RFID key fob readers
====================
Employees can scan personal RFID key fobs with an RFID reader to manage check-ins and check-outs
quickly and easily.
.. image:: hardware/rfid-reader.jpg
:align: center
:width: 40%
:alt: An RFID key fob is placed on an RFID reader
.. tip::
We recommend using the `Neuftech USB RFID Reader <https://neuftech.net/Neuftech-USB-RFID-Reader-ID-Kartenleseger%C3%A4t-Kartenleser-Kontaktlos-Card-Reader-f%C3%BCr-EM4100>`_.
.. note::
An IoT box is **not** required.
Barcode scanners
================
Employees can scan the barcode on their employee badges to manage check-ins and check-outs quickly
and easily. The kiosk mode works with most USB barcode scanners connected directly to a computer.
Bluetooth barcode scanners are also supported natively.
.. tip::
We recommend using the `Honeywell product line
<https://sps.honeywell.com/us/en/products/productivity/barcode-scanners>`_. If the barcode
scanner is connected directly to a computer, it must be configured to use the computer's keyboard
layout.
.. note::
An IoT box is **not** required.

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -10,7 +10,6 @@ Warehouse Management
management/products
management/warehouses
management/replenishment_strategies
management/inventory_adjustments
management/delivery
management/incoming

View File

@@ -1,11 +0,0 @@
:nosearch:
========================
Replenishment strategies
========================
.. toctree::
:titlesonly:
:glob:
replenishment_strategies/virtual_warehouses

View File

@@ -1,53 +0,0 @@
===============================
Resupply from another Warehouse
===============================
Configuration
=============
In order to be able to resupply from another warehouse, you need to
activate \*multi-step routes\*.
.. image:: virtual_warehouses/virtual-warehouses-settings.png
:align: center
:alt: Enable Multi-Step Routes in an Odoo database's settings
You can then access your warehouses via :menuselection:`Inventory --> Configuration -->
Warehouses`.
Enter the warehouse which should be resupplied by another one. You will
have the possibility to directly indicate through which warehouse it
gets resupplied.
.. image:: virtual_warehouses/virtual_warehouses_02.png
:align: center
By activating this option, a new route will now be available on your
products \*Supply Product from Second warehouse\*. It can now be
selected, along with either a \*reordering rule\* or a \*make to
order\*.
.. image:: virtual_warehouses/virtual_warehouses_03.png
:align: center
For the demonstration, I set a reordering rule with a minimum of 5 units
in stock and a maximum of 10 units in stock, having currently 0 units on
hand. I will run the scheduler by going to :menuselection:`Inventory --> Operations -->
Run scheduler`.
.. image:: virtual_warehouses/virtual_warehouses_04.png
:align: center
The system automatically creates two pickings, one \*delivery order\*
from my Second Warehouse which contains the necessary products, and a
receipt in my main warehouse WH/Stock for the same products. The source
document is the \*reordering rule\* which triggered the route \*Supply
Product from Second warehouse\*.
.. image:: virtual_warehouses/virtual_warehouses_05.png
:align: center
.. image:: virtual_warehouses/virtual_warehouses_06.png
:align: center
.. image:: virtual_warehouses/virtual_warehouses_07.png
:align: center

View File

@@ -11,4 +11,3 @@ Valuation Methods
reporting/inventory_valuation_config
reporting/using_inventory_valuation
reporting/integrating_landed_costs
/applications/finance/accounting/others/inventory/avg_price_valuation

View File

@@ -1,7 +1,9 @@
=================================
Inventory Valuation Configuration
Inventory valuation configuration
=================================
.. _inventory/inventory_valuation_config:
All of a company's stock on-hand contributes to the valuation of its inventory. That value should
be reflected in the company's accounting records to accurately show the value of the company and
all of its assets.
@@ -27,32 +29,32 @@ between locations in a company's inventory.
need to be periodically checked to ensure accuracy, and adjustments may be needed on an ongoing
basis depending on the needs and priorities of the business.
Types of Accounting
Types of accounting
-------------------
Accounting entries will depend on the accounting mode: Continental or Anglo-Saxon.
Accounting entries will depend on the accounting mode: *Continental* or *Anglo-Saxon*.
.. tip::
Verify the accounting mode by activating the :ref:`developer-mode`
and navigating to :menuselection:`Accounting --> Configuration --> Settings`.
Verify the accounting mode by activating the :ref:`developer-mode` and navigating to
:menuselection:`Accounting --> Configuration --> Settings`.
In Anglo-Saxon accounting, the costs of goods sold (COGS) are reported when products are sold or
In *Anglo-Saxon* accounting, the costs of goods sold (COGS) are reported when products are sold or
delivered. This means that the cost of a good is only recorded as an expense when a customer is
invoiced for a product. Interim Stock Accounts are used for the input and output accounts, and are
both Asset Accounts in the Balance Sheet.
invoiced for a product. *Interim Stock Accounts* are used for the input and output accounts, and are
both *Asset Accounts* in the balance sheet.
In Continental accounting, the cost of a good is reported as soon as a product is received into
stock. Additionally, a *single* Expense account is used for both input and output accounts in
the Balance Sheet.
In *Continental* accounting, the cost of a good is reported as soon as a product is received into
stock. Additionally, a single *Expense* account is used for both input and output accounts in
the balance sheet.
Costing Methods
Costing methods
---------------
Below are the three costing methods that can be used in Odoo for inventory valuation.
- **Standard Price**: is the default costing method in Odoo. The cost of the product is manually
defined on the product form, and this cost is used to compute the valuation. Even if the purchase
price on a Purchase Order differs, the valuation will still use the cost defined on the product
price on a purchase order differs, the valuation will still use the cost defined on the product
form.
- **Average Cost (AVCO)**: calculates the valuation of a product based on the average cost of that
product, divided by the total number of available stock on-hand. With this costing method,
@@ -81,10 +83,11 @@ valuation method should apply.
Under the :guilabel:`Inventory Valuation` heading are two labels: :guilabel:`Costing Method` and
:guilabel:`Inventory Valuation`. Pick the desired :guilabel:`Costing Method` using the drop-down
menu (e.g. :guilabel:`Standard`, :guilabel:`Average Cost (AVCO)`, or :guilabel:`First In First Out
(FIFO)` and switch the :guilabel:`Inventory Valuation` to :guilabel:`Automated`.
(FIFO)`) and switch the :guilabel:`Inventory Valuation` to :guilabel:`Automated`.
.. seealso::
:doc:`Using the inventory valuation <using_inventory_valuation>`
:doc:`Using the inventory valuation
</applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation>`
.. note::
When choosing :guilabel:`Average Cost (AVCO)` as the :guilabel:`Costing Method`, the numerical

View File

@@ -1,77 +1,130 @@
=============================
Using the inventory valuation
=============================
=========================
Using inventory valuation
=========================
Inventory valuation refers to how you value your stock. Its a very
important aspect of a business as the inventory can be the biggest asset
of a company.
*Inventory valuation* is a quintessential accounting procedure that calculates the value of on-hand
stock. Once determined, the inventory valuation amount is then incorporated into a company's overall
value.
In this documentation, we will explain how the inventory valuation works
in Odoo.
In Odoo, this process can be conducted manually— by warehouse employees physically counting the
products— or automatically through the database.
Inventory valuation: the basics
===============================
.. seealso::
:ref:`Inventory valuation configuration <inventory/inventory_valuation_config>`
Understand the basics of inventory valuation
============================================
In order to understand how moving products in and out of stock affects the company's overall value,
consider the following product and stock moves scenario below.
Receive a product
-----------------
Each time a product enters or leaves your stock, the value of your
inventory is impacted. The way it is impacted depends on the
configuration of your product (more info here).
For example, consider an physical product, a simple *table*, which is categorized as `Office
Furniture` in the product form's :guilabel:`Product Category` field.
Lets take an example with a product - a table - configured with a
*FIFO costing method* and an automated inventory valuation.
I purchase 10 tables at a cost of $10.
.. image:: using_inventory_valuation/use_inventory_valuation_01.png
:align: center
When Ill confirm the receipt of the products, the value of my inventory
will be impacted. If I want to know what this impact is, I can click on
the valuation stat button.
Navigate to the the product category itself by going to :menuselection:`Inventory app -->
Configuration --> Product Categories`, and on the form, set the :guilabel:`Costing Method` as `First
In First Out (FIFO)` and the :guilabel:`Inventory Valuation` field as `Automated`.
.. tip::
The consignment feature allows you to set owners on your stock (discover
more about the consignment feature). When you receive products that are
owned by another company, they are not taken into account in your
inventory valuation.
Alternatively access the :guilabel:`Product Categories` dashboard by clicking on the
:guilabel:`internal link` arrow on the individual product's form, by hovering over the
:guilabel:`Product Category` field.
.. image:: using_inventory_valuation/use_inventory_valuation_02.png
:align: center
Next, assume 10 tables are purchased at a price of $10.00, each. The :abbr:`PO (Purchase Order)` for
those tables will show the subtotal of the purchase as $100, plus any additional costs or taxes.
.. note::
You need access rights on the accounting module to see that button.
.. image:: using_inventory_valuation/purchase-order.png
:align: center
:alt: Purchase order with 10 tables products valued at $10 each.
In this case, I can see that the 10 tables entered the stock for a total
value of $100.
After selecting :guilabel:`Validate` on the :abbr:`PO (Purchase Order)`, use the
:guilabel:`Valuation` smart button to view how the value of inventory was impacted.
.. image:: using_inventory_valuation/use_inventory_valuation_03.png
:align: center
.. image:: using_inventory_valuation/valuation-smart-button.png
:align: center
:alt: Valuation smart button on a receipt.
I can also easily access the accounting entry that has been generated
(in case of automated inventory valuation).
.. important::
:ref:`Developer mode <developer-mode>` must be turned on to see the *Valuation* smart button.
.. image:: using_inventory_valuation/use_inventory_valuation_04.png
:align: center
.. tip::
The :doc:`consignment </applications/inventory_and_mrp/inventory/management/misc/owned_stock>`
feature allows ownership to items in stock. Thus, products owned by other companies are not
accounted for in the host company's inventory valuation.
The :guilabel:`Stock Valuation` dashboard then displays valuation of all products in the shipment,
along with their quantities and valuation. In the example of 10 tables being purchased, the
:guilabel:`Total Value` column of the dashboard would display a calculated valuation of $100.
.. image:: using_inventory_valuation/stock-valuation-product.png
:align: center
:alt: Stock valuation page depicting the products within a shipment.
In Odoo, automatic inventory valuation records are also recorded in the *Accounting* app. To access
these accounting entries, navigate to :menuselection:`Accounting --> Journal Entries`, and look for
inventory valuation entries with the `STJ` prefix in the :guilabel:`Journal` and :guilabel:`Number`
columns, respectively.
.. image:: using_inventory_valuation/inventory-valuation-entry.png
:align: center
:alt: Accounting entry for the inventory valuation of 10 tables.
Deliver a product
-----------------
In the same logic, when a table will be delivered, the stock valuation
will be impacted and you will have access to a similar information.
In the same logic, when a table is shipped to a customer and leaves the warehouse, the stock
valuation decreases. The :guilabel:`Valuation` smart button on the :abbr:`DO (Delivery Order)`,
likewise, displays the stock valuation record as it does on a :abbr:`PO (Purchase Order)`
.. image:: using_inventory_valuation/use_inventory_valuation_05.png
:align: center
.. image:: using_inventory_valuation/decreased-stock-valuation.png
:align: center
:alt: Decreased stock valuation after a product is shipped.
The inventory valuation report
------------------------------
The summary of this is accessible via the inventory valuation report
(accessible from :menuselection:`Inventory --> Reporting --> Inventory Valuation`). It gives
you, product per product, the value of your stock. By clicking on the
button *Inventory At Date*, you can have the same information for a
past date.
To view the current value of all products in the warehouse, go to :menuselection:`Inventory app -->
Reporting --> Inventory Valuation`. The records in the table are organized by product, and selecting
a product's drop-down menu displays detailed records with the :guilabel:`Date`,
:guilabel:`Quantity`, and :guilabel:`Total Value` of the inventory.
.. image:: using_inventory_valuation/use_inventory_valuation_06.png
:align: center
.. image:: using_inventory_valuation/inventory-valuation-products.png
:align: center
:alt: Inventory valuation report showing multiple products.
.. note::
The :guilabel:`Inventory At Date` button, located in the top-left corner of the :guilabel:`Stock
Valuation` dashboard, shows the inventory valuation of products available during a prior
specified date.
Update product unit price
~~~~~~~~~~~~~~~~~~~~~~~~~
For any company: lead times, supply chain failures, and other risk factors can contribute to
invisible costs. Although Odoo attempts to accurately represent the stock value, *manual valuation*
serves as an additional tool to update the unit price of products.
.. important::
Manual valuation is intended for products that can be purchased and received for a cost greater
than 0, or have product categories set with :guilabel:`Costing Method` set as either `Average
Cost (AVCO)` or `First In First Out (FIFO)`.
.. image:: using_inventory_valuation/add-manual-valuation.png
:align: center
:alt: Add manual valuation of stock value to a product.
Create manual valuation entries on the :guilabel:`Stock Valuation` dashboard by first navigating to
:menuselection:`Inventory app --> Reporting --> Inventory Valuation`, and then click the little gray
drop-down icon to the left of a product's name, to then reveal stock valuation line items below as
well as a teal :guilabel:`+ (plus)` button on the right.
Click the teal :guilabel:`+ (plus)` button to open up the :guilabel:`Product Revaluation` form,
where updates to the calculation of inventory valuation can be made, by increasing or decreasing the
unit price of each product.
.. image:: using_inventory_valuation/product-revaluation.png
:align: center
:alt: Product revaluation form adding a value of $1.00 with the reason being inflation.

View File

@@ -8,5 +8,6 @@ Warehouses
:titlesonly:
:glob:
warehouses/warehouses_locations
warehouses/resupply_warehouses
warehouses/warehouse_replenishment_transfer
warehouses/warehouses_locations

View File

@@ -0,0 +1,150 @@
========================================================
Transfer products between warehouses using replenishment
========================================================
For companies that use multiple warehouses, it is often necessary to transfer items between them.
This is referred to as an *inter-warehouse transfer*. Odoo *Inventory* handles the administrative
process of inter-warehouse transfers to ensure that inventory counts remain accurate during and
after the transfer. This document will detail the method for conducting an inter-warehouse transfer
using replenishment.
Configure warehouses for inter-warehouse replenishment
======================================================
First, ensure the :guilabel:`Multi-Step Routes` setting is enabled by navigating to
:menuselection:`Inventory --> Configuration --> Settings`, and then check the box under the
:guilabel:`Warehouse` tab. This will provide additional configuration options when creating a second
warehouse that are needed for inter-warehouse replenishment.
By default, Odoo comes with a main warehouse already configured. If an additional warehouse has not
already been created, do so now from the :guilabel:`Inventory` module by selecting
:menuselection:`Configuration --> Warehouses --> Create`. Otherwise, select the warehouse that
products will be transferred to from the :guilabel:`Warehouses` page and then click :guilabel:`Edit`
to change its settings. Configure the warehouse as follows:
- :guilabel:`Warehouse`: choose a name that is not already being used for another warehouse (e.g.
`Alternative Warehouse`)
- :guilabel:`Short Name`: choose a short name by which the warehouse will be identified (e.g.
`ALT_WH`)
Click :guilabel:`Save` and the new warehouse will be created. In addition, a new :guilabel:`Resupply
From` field will appear on the warehouse's form. Click :guilabel:`Edit` and then check the box next
to the warehouse that will be used to resupply the warehouse that is currently being configured.
.. image:: warehouse_replenishment_transfer/new-warehouse-configuration.png
:align: center
:alt: A warehouse settings form configured to allow resupplying between warehouses.
.. note::
For the purposes of this demonstration, the warehouse that products are transferred from
(outgoing) will be titled "San Francisco", and the warehouse that products are transferred to
(incoming) will be titled "San Francisco 2".
Configure products for inter-warehouse replenishment
====================================================
Products must also be configured properly in order for them to be transferred between warehouses.
Navigate to :menuselection:`Inventory --> Products --> Products` and select an existing product or
:guilabel:`Create` a new one, if necessary.
Then, on the product form, go to the :guilabel:`Inventory` tab and enable the checkbox for
:guilabel:`X: Supply Product from Y`, with *X* being the warehouse receiving the transferred
products and *Y* being the warehouse that products are transferred from.
.. image:: warehouse_replenishment_transfer/product-transfer-configuration.png
:align: center
:alt: Enable the checkbox to resupply one warehouse from another.
Replenish one warehouse from another
====================================
Starting in the :menuselection:`Inventory` module, select :menuselection:`Products --> Products` and
then choose the product that will be replenished. Click the :guilabel:`Replenish` button on the top
left of the product page and fill out the pop-up form as follows:
- :guilabel:`Quantity`: the number of units that will be sent to the warehouse being replenished
- :guilabel:`Scheduled Date`: the date that the replenishment is scheduled to take place
- :guilabel:`Warehouse`: the warehouse that will be replenished
- :guilabel:`Preferred Routes`: select `X: Supply Product from Y`, with *X* being the warehouse to
be replenished and *Y* being the warehouse that the product will be transferred from
.. image:: warehouse_replenishment_transfer/product-replenishment-form.png
:align: center
:alt: The form for replenishing a product.
Click :guilabel:`Confirm` and a delivery order will be created for the outgoing warehouse along with
a receipt for the warehouse that will receive the product. Depending on the configuration settings
for the outgoing and incoming warehouses, processing delivery orders and receipts will require
between one and three steps. This document will detail how to process one-step deliveries and
receipts.
Process the delivery order
--------------------------
The first stage of a replenishment order is processing the delivery from the warehouse that the
product is being transferred from. On the :menuselection:`Inventory` dashboard, select the
:guilabel:`X to Process` button on the :guilabel:`Delivery Orders` card for the outgoing warehouse,
then the delivery order created for the replenishment. On the delivery order page, click the
:guilabel:`Check Availability` button in the top left to reserve the quantity of the product to be
transferred. Once the delivery has been dispatched, click the :guilabel:`Validate` button to
register the quantities shipped.
.. image:: warehouse_replenishment_transfer/delivery-orders-card.png
:align: center
:alt: The delivery orders card for the outgoing warehouse.
Process the receipt
-------------------
Once the goods arrive at the incoming warehouse, the receipt created for that warehouse must be
processed as well. Return to the :menuselection:`Inventory` dashboard and select the :guilabel:`X to
Process` button on the :guilabel:`Receipts` card for the incoming warehouse, then the receipt
created for the replenishment. On the receipt page, click the :guilabel:`Validate` button in the top
left of the page to register the quantities received.
.. image:: warehouse_replenishment_transfer/receipts-card.png
:align: center
:alt: The delivery orders card for the outgoing warehouse.
After processing the receipt, the products transferred will now appear in the inventory of the
incoming warehouse. The stock numbers for both warehouses can be viewed by returning to the product
page and selecting the :guilabel:`X Units On Hand` button at the top of the screen.
Automate inter-warehouse replenishment
======================================
Using reordering rules, it is possible to automate the process of replenishing one warehouse from
another.
To get started, navigate to :menuselection:`Inventory --> Products --> Products`, and then
choose the product that will be replenished. From the product page, select the :guilabel:`Reordering
Rules` smart button at the top of the form, and then on the next page, click :guilabel:`Create` to
configure the form as follows:
- :guilabel:`Location`: the location that the reordering rule will replenish when triggered, in this
case, the incoming warehouse
- :guilabel:`Min Quantity`: when the quantity on hand at the incoming warehouse falls below this
number, the reordering rule will be triggered
- :guilabel:`Max Quantity`: when the reordering rule is triggered, the product will be replenished
at the incoming warehouse up to this quantity
- :guilabel:`Multiple Quantity`: specify if the product should be replenished in batches of a
certain quantity; for example, a product could be replenished in batches of 20
- :guilabel:`UoM`: the unit of measure used for reordering the product; this value can simply be
`Units`, or a specific unit of measurement for weight, length, etc.
.. image:: warehouse_replenishment_transfer/reordering-rule-configuration.png
:align: center
:alt: A fully configured reordering rule.
Finish by clicking :guilabel:`Save` and the reordering rule will be created. Now, when the scheduler
runs automatically each day, a transfer will be created for each reordering rule that has been
triggered.
.. tip::
To manually trigger reordering rules, start from the :menuselection:`Inventory` module and select
:menuselection:`Operation --> Run Scheduler`, then click the green :guilabel:`Run Scheduler`
button in the pop-up that appears.
After the scheduler runs, a delivery order and receipt will be created for the outgoing and incoming
warehouses, respectively. Both the delivery order and receipt should be processed using the same
method as detailed above.

View File

@@ -9,6 +9,5 @@ Concepts
:glob:
concepts/use_routes
concepts/inter_warehouse
concepts/cross_dock
concepts/stock_warehouses

View File

@@ -1,71 +0,0 @@
=========================
Inter-warehouse transfers
=========================
When owning several warehouses, goods might need to be transferred from one warehouse to another.
This type of transfer is called an *inter-warehouse transfer*. While physically performing the
inter-warehouse transfer might be simple, the administrative part can be complex. Fortunately, Odoo
comes with an intuitive flow that helps save time when registering inter-warehouse transfers.
Create an internal transfer
===========================
The following paragraphs detail a sample inter-warehouse transfer, referred to as an *internal
transfer*, use case. The sample use case assumes that the user has already configured their second
warehouse.
To transfer eight units of a product from the first warehouse to another one, proceed as follows:
From the :guilabel:`Inventory` dashboard, select an internal movement operation of one of the two
warehouses. To do so, click on the three vertical dots icon on the top right corner of the
operation card and select :guilabel:`Planned Transfer`.
.. image:: inter_warehouse/internal-transfer-choice.png
:align: center
:alt: View of the choice between planned transfer and immediate transfer.
On the new planned transfer form, select the :guilabel:`Source Location` (in this case, the first
warehouse) and the :guilabel:`Destination Location` (in this case, the second warehouse).
Next, add the products that will be transferred by clicking on :guilabel:`Add a line`, then click
on :guilabel:`Save` and :guilabel:`Mark as ToDo` once done. After that, Odoo puts the transfer in
the :guilabel:`Waiting` status. Then, click on :guilabel:`Reserve` to reserve the number of
products in the source warehouse.
.. image:: inter_warehouse/planned-internal-transfer.png
:align: center
:alt: View of the internal transfer form.
.. note::
If :guilabel:`Immediate Transfer` was selected instead of :guilabel:`Planned Transfer`, Odoo
processes the transfer automatically after the :guilabel:`Validate` button is clicked on the
internal transfer form.
It is also possible to manually transfer each product:
#. On the :guilabel:`Inventory` dashboard, open the souce location's internal transfer operation
page.
.. image:: inter_warehouse/in-progress-internal-transfer.png
:align: center
:alt: View of the dashboard with a zoom of the pending internal transfer.
#. Open the desired transfer order form.
.. image:: inter_warehouse/internal-transfers-list.png
:align: center
:alt: View of the pending internal transfers list.
#. Click on the pencil icon in the lower right corner to open the operation details window. In this
new window, the quantity of products can be manually set.
.. image:: inter_warehouse/backorder.png
:align: center
:alt: View of a backorder pop-up window because all products are not moved at the same time.
.. note::
To process the transfer order partially (e.g., a part of the products can't be shipped yet due
to an unexpected event), Odoo automatically asks if a *backorder* should be created.
- Create a backorder if it is expected that the remaining products will be processed later.
- Do not create a backorder if the remaining products will not be supplied/received.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

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