diff --git a/content/administration/install/deploy.rst b/content/administration/install/deploy.rst index 5a9c85ed3..2f0800331 100644 --- a/content/administration/install/deploy.rst +++ b/content/administration/install/deploy.rst @@ -392,7 +392,7 @@ The solutions to support livechat/motifications in a WSGI application are: * Deploy a threaded version of Odoo (instead of a process-based preforking one) and redirect only requests to URLs starting with ``/websocket/`` to - that Odoo, this is the simplest and the websocket URL can double up as the cron + that Odoo, this is the simplest and the websocket URL can double up as the cron instance. * Deploy an evented Odoo via ``odoo-gevent`` and proxy requests starting with ``/websocket/`` to @@ -410,7 +410,7 @@ a static HTTP server. Serving static files -------------------- -Odoo static files are located in each module's :file:`static/` folder, so static files can be served +Odoo static files are located in each module's :file:`static/` folder, so static files can be served by intercepting all requests to :samp:`/{MODULE}/static/{FILE}`, and looking up the right module (and file) in the various addons paths. @@ -420,13 +420,13 @@ by intercepting all requests to :samp:`/{MODULE}/static/{FILE}`, and looking up Using the above NGINX (https) configuration, the following location block should be added to serve static files via NGINX. - + .. code-block:: nginx - + location @odoo { # copy-paste the content of the / location block } - + # Serve static files right away location ~ ^/[^/]+/static/.+$ { root /usr/lib/python3/dist-packages/odoo/addons; @@ -444,11 +444,11 @@ by intercepting all requests to :samp:`/{MODULE}/static/{FILE}`, and looking up serve static files via NGINX. .. code-block:: nginx - + location @odoo { # copy-paste the content of the / location block } - + # Serve static files right away location ~ ^/[^/]+/static/.+$ { root /opt/odoo; @@ -483,7 +483,7 @@ X-Sendfile and X-Accel). - The X-Accel extension for NGINX **does** require the following additionnal configuration: .. code-block:: nginx - + location /web/filestore { internal; alias /path/to/odoo/data-dir/filestore; diff --git a/content/administration/maintain/domain_names.rst b/content/administration/maintain/domain_names.rst index 9cf628162..d07d1a7e3 100644 --- a/content/administration/maintain/domain_names.rst +++ b/content/administration/maintain/domain_names.rst @@ -17,7 +17,7 @@ You can use a custom domain name to access your Odoo database and websites: ``odoo.com`` for both the URL and the emails (e.g., ``https://example.odoo.com``). .. important:: - Odoo offers a :ref:`free custom domain name ` to all Odoo Online + Odoo offers a :ref:`free custom domain name ` to all Odoo Online databases for one year. Visitors can then access your website with an address such as ``www.example.com`` rather than the default ``example.odoo.com``. diff --git a/content/administration/maintain/enterprise.rst b/content/administration/maintain/enterprise.rst index 8b87aa23c..25f9e7330 100644 --- a/content/administration/maintain/enterprise.rst +++ b/content/administration/maintain/enterprise.rst @@ -41,7 +41,7 @@ On Linux, using an installer .. code-block:: console $ sudo dpkg -i - + * Update your database to the enterprise packages using .. code-block:: console diff --git a/content/administration/maintain/google_oauth.rst b/content/administration/maintain/google_oauth.rst index 7e6b3966b..153de3f2a 100644 --- a/content/administration/maintain/google_oauth.rst +++ b/content/administration/maintain/google_oauth.rst @@ -123,7 +123,7 @@ server in Odoo. The configuration automatically loads the token in Odoo, and a t :align: center :alt: Configure Outgoing Email Servers in Odoo. -Finally, save the settings and :guilabel:`Test the Connection`. A confirmation message should +Finally, save the settings and :guilabel:`Test the Connection`. A confirmation message should appear. The Odoo database can now send safe, secure emails through Google using OAuth authentication. diff --git a/content/administration/odoo_sh/getting_started/branches.rst b/content/administration/odoo_sh/getting_started/branches.rst index f7e6be89f..fce357241 100644 --- a/content/administration/odoo_sh/getting_started/branches.rst +++ b/content/administration/odoo_sh/getting_started/branches.rst @@ -259,16 +259,16 @@ This server only keeps one month of backups: 7 daily and 4 weekly backups. Dedicated backup servers keep the same backups, as well as 3 additional monthly backups. To restore or download one of these monthly backups, please `contact us `_. -If you merge a commit updating the version of one or several modules (in :file:`__manifest__.py`), or their linked python -dependencies (in :file:`requirements.txt`), then Odoo.sh performs a backup automatically (flagged with type Update in the list), -as either the container will be changed by the installation of new pip packages, either the database itself will be -changed with the module update triggered afterwards. In these two cases, we are doing a backup as it may potentially +If you merge a commit updating the version of one or several modules (in :file:`__manifest__.py`), or their linked python +dependencies (in :file:`requirements.txt`), then Odoo.sh performs a backup automatically (flagged with type Update in the list), +as either the container will be changed by the installation of new pip packages, either the database itself will be +changed with the module update triggered afterwards. In these two cases, we are doing a backup as it may potentially break things. -If you merge a commit that only changes some code without the above-mentioned modifications, then no backup is done -by Odoo.sh, as neither the container nor the database is modified so the platform considers this safe enough. Of course, -as an extra precaution, you can make a backup manually before making big changes in your production sources in case -something goes wrong (those manual backups are available for about one week). To avoid abuse, we limit manual backups +If you merge a commit that only changes some code without the above-mentioned modifications, then no backup is done +by Odoo.sh, as neither the container nor the database is modified so the platform considers this safe enough. Of course, +as an extra precaution, you can make a backup manually before making big changes in your production sources in case +something goes wrong (those manual backups are available for about one week). To avoid abuse, we limit manual backups to 5 per day. The *import database* feature accepts database archives in the format provided by: diff --git a/content/applications/finance/accounting/bank/feeds/saltedge.rst b/content/applications/finance/accounting/bank/feeds/saltedge.rst index 5766150b2..d38008f0b 100644 --- a/content/applications/finance/accounting/bank/feeds/saltedge.rst +++ b/content/applications/finance/accounting/bank/feeds/saltedge.rst @@ -80,12 +80,12 @@ FAQ I have an error when I try to delete my synchronization within Odoo ------------------------------------------------------------------- -Odoo can't permanently delete the connection you have created with the banking institution. However, -it can revoke the consent you gave so that Odoo won't be able to access your account anymore. The -error you are seeing is probably a message telling you that the consent was revoked, but the record -could not be deleted as it still exists within Salt edge. If you want to remove the connection -completely, please connect to your `Salt Edge account `_ -and manually delete your synchronization. Once this is done, you can go back to Odoo to delete the +Odoo can't permanently delete the connection you have created with the banking institution. However, +it can revoke the consent you gave so that Odoo won't be able to access your account anymore. The +error you are seeing is probably a message telling you that the consent was revoked, but the record +could not be deleted as it still exists within Salt edge. If you want to remove the connection +completely, please connect to your `Salt Edge account `_ +and manually delete your synchronization. Once this is done, you can go back to Odoo to delete the record. I have an error saying that I have already synchronized this account diff --git a/content/applications/finance/accounting/bank/setup/manage_cash_register.rst b/content/applications/finance/accounting/bank/setup/manage_cash_register.rst index 3ded4ef83..365ad2b13 100644 --- a/content/applications/finance/accounting/bank/setup/manage_cash_register.rst +++ b/content/applications/finance/accounting/bank/setup/manage_cash_register.rst @@ -11,7 +11,7 @@ Configuration .. image:: manage_cash_register/journal.png :align: center -1. Configure the Cash journal in :menuselection:`Accounting --> Configuration --> +1. Configure the Cash journal in :menuselection:`Accounting --> Configuration --> Journals`. 2. In the tab Journal Entries, the Default Debit and Credit Account can be diff --git a/content/applications/finance/accounting/fiscal_localizations/localizations/argentina.rst b/content/applications/finance/accounting/fiscal_localizations/localizations/argentina.rst index 5fbb24b4c..a020feed7 100644 --- a/content/applications/finance/accounting/fiscal_localizations/localizations/argentina.rst +++ b/content/applications/finance/accounting/fiscal_localizations/localizations/argentina.rst @@ -23,9 +23,9 @@ modules are available: - **l10n_ar_reports**: Add VAT Book report which is a legal requirement in Argentine and that holds the VAT detail info of sales or purchases recorded on the journal entries. This module includes as well the VAT summary report that is used to analyze the invoice - -- **l10n_ar_edi**: This module includes all technical and functional requirements to generate - Electronic Invoice via web service, based on the AFIP regulations. + +- **l10n_ar_edi**: This module includes all technical and functional requirements to generate + Electronic Invoice via web service, based on the AFIP regulations. Configuration @@ -48,7 +48,7 @@ fiscal obligation and structure of the company: .. image:: argentina/argentina02.png :align: center - + Chart of Account ~~~~~~~~~~~~~~~~ @@ -75,9 +75,9 @@ Environment The AFIP infrastructure is replicated in two separate environments, Testing and Production. -Testing is provided so that the Companies can test their developments until they are ready to move -into the Production environment. As these two environments are completely isolated from each other, -the digital certificates of one instance are not valid in the other one. +Testing is provided so that the Companies can test their developments until they are ready to move +into the Production environment. As these two environments are completely isolated from each other, +the digital certificates of one instance are not valid in the other one. Go to :menuselection:`Accounting --> Settings --> Argentinian Localization` to select the environment: @@ -87,10 +87,10 @@ Go to :menuselection:`Accounting --> Settings --> Argentinian Localization` to s AFIP Certificates ***************** -The electronic invoice and other afip services work with WebServices (WS) provided by the AFIP. +The electronic invoice and other afip services work with WebServices (WS) provided by the AFIP. In order to enable communication with the AFIP, the first step is to request a Digital Certificate -if you don’t have one already. +if you don’t have one already. #. Generate certificate Sign Request (Odoo). When this option is selected a file with extension ``.csr`` (certificate signing request) is generated to be used the AFIP portal to request the @@ -101,7 +101,7 @@ if you don’t have one already. #. Generate Certificate (AFIP). Access the AFIP portal and follow the instructions described in the next document in order to get a certificate. `Get AFIP Certificate `_. - + #. Upload Certificate and Private Key (Odoo). Once the certificate has been generated, it needs to be uploaded in Odoo, using the pencil next in the field “Certificado” and selecting the corresponding file. @@ -109,7 +109,7 @@ if you don’t have one already. .. image:: argentina/argentina_edi_03.png .. tip:: - In case you need to configure the Homologation Certificate, please refer to the AFIP official + In case you need to configure the Homologation Certificate, please refer to the AFIP official documentation: `Homologation Certificate `_. @@ -244,11 +244,11 @@ defines as well: #. The structure and data of the electronic invoice file. Web Services -************ -- ``wsfev1: Electronic Invoice.`` This is the most common service, - is used to generated invoices for document types A, B, C, M with no detail per item. -- ``wsbfev1: Electronic Fiscal Bond.`` For those who invoice capital goods and wish - to access the benefit of the Electronic Tax Bonds granted by the Ministry of Economy. For more +************ +- ``wsfev1: Electronic Invoice.`` This is the most common service, + is used to generated invoices for document types A, B, C, M with no detail per item. +- ``wsbfev1: Electronic Fiscal Bond.`` For those who invoice capital goods and wish + to access the benefit of the Electronic Tax Bonds granted by the Ministry of Economy. For more detail you can refer to the next link: `Fiscal Bond `_. - ``wsfexv1: Electronic Exportation Invoice.`` Used to generate invoices for international customers @@ -282,8 +282,8 @@ can be used: :align: center .. note:: - When creating the Purchase journals, it's possible to define if they can be related to document - types or not. In case that the option to use documents is selected, there is no need to manually + When creating the Purchase journals, it's possible to define if they can be related to document + types or not. In case that the option to use documents is selected, there is no need to manually associate the document type sequences as the document number is provided by the vendor. @@ -326,22 +326,22 @@ responsibility type but it can be updated manually by the user. Electronic Invoice elements ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -When using electronic invoice, if all the information is correct the Invoice is posted in the -standard way, in case that something needs to be addressed (check the section common errors for more -detail), an error message is raised indicating the issue/proposed solution and the invoice remains -in draft until the related data is corrected. +When using electronic invoice, if all the information is correct the Invoice is posted in the +standard way, in case that something needs to be addressed (check the section common errors for more +detail), an error message is raised indicating the issue/proposed solution and the invoice remains +in draft until the related data is corrected. -Once the invoice is posted, the information related to the AFIP validation and status is displayed -in the AFIP Tab, including: +Once the invoice is posted, the information related to the AFIP validation and status is displayed +in the AFIP Tab, including: - AFIP Autorisation: CAE number. -- Expiration date: Deadline to deliver the invoice to the customers. Normally 10 days after the - CAE is generated. +- Expiration date: Deadline to deliver the invoice to the customers. Normally 10 days after the + CAE is generated. - Result: - Aceptado en AFIP. - - Aceptado con Observaciones. - + - Aceptado con Observaciones. + .. image:: argentina/argentina_edi_15.png :align: center @@ -378,7 +378,7 @@ Special Use Cases Invoices for Services ********************* For electronic invoices that include Services, the AFIP requires to report the service starting -and ending date, this information can be filled in the tab “Other Info”: +and ending date, this information can be filled in the tab “Other Info”: .. image:: argentina/argentina_edi_06.png :align: center @@ -392,34 +392,34 @@ filled automatically considering the beginning and day of the invoice month: Exportation Invoices ******************** -The invoices related to Exportation transactions required a Journal that used the AFIP POS +The invoices related to Exportation transactions required a Journal that used the AFIP POS System “Expo Voucher - Web Service” so the proper document type be associated: .. image:: argentina/argentina_edi_08.png :align: center -When the customer selected in the Invoice has set the AFIP responsibility type as “Cliente / +When the customer selected in the Invoice has set the AFIP responsibility type as “Cliente / Proveedor del Exterior” or “IVA Liberado – Ley Nº 19.640”, Odoo automatically assigned: - Journal related to the exportation Web Service. - Exportation document type . - Fiscal position: Compras/Ventas al exterior. - Concepto AFIP: Products / Definitive export of goods. -- Exempt Taxes. +- Exempt Taxes. .. image:: argentina/argentina_edi_09.png :align: center .. note:: The Exportation Documents required the Incoterm in :menuselection:`Other Info --> Accounting`: - + .. image:: argentina/argentina_edi_13.png :align: center - - + + Fiscal Bond *********** -The Electronic Fiscal bond is used for those who invoice capital goods and wish to access +The Electronic Fiscal bond is used for those who invoice capital goods and wish to access the benefit of the Electronic Tax Bonds granted by the Ministry of Economy. For these transactions it’s important to have into consideration the next requirements: @@ -435,77 +435,77 @@ For these transactions it’s important to have into consideration the next requ - Quantity. - Unit of measurement. - Bonus. - - VAT rate. + - VAT rate. -Electronic Credit Invoice MiPyme (FCE) +Electronic Credit Invoice MiPyme (FCE) ************************************** **Invoices:** There are several document types classified as Mipyme also known as -Electronic Credit Invoice (FCE in spanish), which is used to impulse the SME, its purpose is -to develop a mechanism that improves the financing conditions of these companies and allows -them to increase their productivity, through the early collection of credits and receivables -issued to their clients and / or vendors. +Electronic Credit Invoice (FCE in spanish), which is used to impulse the SME, its purpose is +to develop a mechanism that improves the financing conditions of these companies and allows +them to increase their productivity, through the early collection of credits and receivables +issued to their clients and / or vendors. For these transactions it’s important to have into consideration the next requirements: - Specific document types (201, 202, 206, etc). -- The emisor should be eligible by the AFIP to MiPyme transactions. -- The amount should be bigger than 100,000 ARS. -- A bank account type CBU must be related to the emisor, otherwise the invoice can’t - be validated, having these errors messages for example: - +- The emisor should be eligible by the AFIP to MiPyme transactions. +- The amount should be bigger than 100,000 ARS. +- A bank account type CBU must be related to the emisor, otherwise the invoice can’t + be validated, having these errors messages for example: + .. image:: argentina/argentina_edi_10.png :align: center -**Credit& Debit Notes:** When creating a Credit/Debit note related to a FCE document, it is +**Credit& Debit Notes:** When creating a Credit/Debit note related to a FCE document, it is important take the next points into consideration: -- Use the Credit and Debit Note buttons, so the correct reference of the originator - document passed to the note. +- Use the Credit and Debit Note buttons, so the correct reference of the originator + document passed to the note. .. image:: argentina/argentina_edi_11.png :align: center - + - The document letter should be the same than the originator document (either A or B). -- The same currency as the source document must be used. When using a secondary currency - there is an exchange difference if the currency rate is different between the emission day - and the payment date, it’s possible to create a credit/debit note to decrease/increase the - amount to pay in ARS. +- The same currency as the source document must be used. When using a secondary currency + there is an exchange difference if the currency rate is different between the emission day + and the payment date, it’s possible to create a credit/debit note to decrease/increase the + amount to pay in ARS. In the workflow we can have two scenarios: -#. The FCE is rejected so the Credit Note should have the field “FCE, is Cancellation?” as True. -#. The Credit Note, is created with the negative amount to annulate the FCE document, - in this case the field “FCE, is Cancellation?” must be empty (false). +#. The FCE is rejected so the Credit Note should have the field “FCE, is Cancellation?” as True. +#. The Credit Note, is created with the negative amount to annulate the FCE document, + in this case the field “FCE, is Cancellation?” must be empty (false). .. image:: argentina/argentina_edi_12.png :align: center - + Invoice printed report ~~~~~~~~~~~~~~~~~~~~~~ -The PDF report related to electronic invoices that have been validated by the AFIP includes -a barcode at the bottom of the format which represent the CAE number, the Expiration Date is -also displayed as it’s legal requirement: - +The PDF report related to electronic invoices that have been validated by the AFIP includes +a barcode at the bottom of the format which represent the CAE number, the Expiration Date is +also displayed as it’s legal requirement: + .. image:: argentina/argentina_edi_14.png :align: center Troubleshooting and Auditing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -For auditing and troubleshooting purposes you can get the detailed information of an -invoice number that has been previously sent to the AFIP, +For auditing and troubleshooting purposes you can get the detailed information of an +invoice number that has been previously sent to the AFIP, .. image:: argentina/argentina_edi_23.png :align: center - + .. image:: argentina/argentina_edi_24.png - :align: center + :align: center -You can also get the last number used in AFIP for a specific Document Type and POS Number -as support for any possible issues on the sequence synchronization between Odoo and AFIP. +You can also get the last number used in AFIP for a specific Document Type and POS Number +as support for any possible issues on the sequence synchronization between Odoo and AFIP. .. image:: argentina/argentina_edi_22.png :align: center @@ -514,8 +514,8 @@ as support for any possible issues on the sequence synchronization between Odoo Vendor Bills ------------ -Based on the purchase journal selected for the vendor bill, the document type is now a required field. -This value is auto populated based on the AFIP Responsibility type of Issuer and Customer, but the +Based on the purchase journal selected for the vendor bill, the document type is now a required field. +This value is auto populated based on the AFIP Responsibility type of Issuer and Customer, but the value can be switched if necessary. .. image:: argentina/argentina16.png @@ -528,20 +528,20 @@ expected. .. image:: argentina/argentina17.png :align: center -The vendor bill number is structured in the same way that the invoices with the difference +The vendor bill number is structured in the same way that the invoices with the difference that the document sequence is input by the user: “Document Prefix - Letter - Document number". Validate Vendor Bill number in AFIP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As most companies have internal controls to verify that the vendor bill is related to an AFIP -valid document, an automatic validation can be set in :menuselection:`Accounting --> Settings --> -Argentinian Localization --> Validate document in the AFIP`, considering the following levels: +valid document, an automatic validation can be set in :menuselection:`Accounting --> Settings --> +Argentinian Localization --> Validate document in the AFIP`, considering the following levels: - **Not available:** The verification is not done (this is the default value). -- **Available:** The verification is done, in case the number is not valid - it only raises a warning but it allows you to post the vendor bill. -- **Required:** The verification is done and it doesn't allow the user to +- **Available:** The verification is done, in case the number is not valid + it only raises a warning but it allows you to post the vendor bill. +- **Required:** The verification is done and it doesn't allow the user to post the vendor bill if the document number is not valid. .. image:: argentina/argentina_edi_16.png @@ -549,13 +549,13 @@ Argentinian Localization --> Validate document in the AFIP`, considering the fol How to use it in Odoo ********************* -This tool incorporates in the vendor bill a new "Verify on AFIP" button located -next to the AFIP Authorization code. +This tool incorporates in the vendor bill a new "Verify on AFIP" button located +next to the AFIP Authorization code. .. image:: argentina/argentina_edi_17.png :align: center -In case it’s not a valid AFIP authorization the value “Rejected” will be +In case it’s not a valid AFIP authorization the value “Rejected” will be displayed and the details of the validation will be added to the chatter. .. image:: argentina/argentina_edi_18.png @@ -566,8 +566,8 @@ Special Use cases ~~~~~~~~~~~~~~~~~ Untaxed Concepts **************** -There are some transactions that include items that are not part of the VAT base amount, -this is commonly used in fuel and gasoline invoices. +There are some transactions that include items that are not part of the VAT base amount, +this is commonly used in fuel and gasoline invoices. The vendor bill will be registered using 1 item for each product that is part of the VAT base amount and an additional item to register the amount of the Exempt concept: @@ -577,23 +577,23 @@ base amount and an additional item to register the amount of the Exempt concept Perception Taxes **************** -The vendor bill will be registered using 1 item for each product that is part of the -VAT base amount, the perception tax can be added in any of the product lines, as result -we will have one tax group for the VAT and one for the perception, the perception default -value is always 1.00. +The vendor bill will be registered using 1 item for each product that is part of the +VAT base amount, the perception tax can be added in any of the product lines, as result +we will have one tax group for the VAT and one for the perception, the perception default +value is always 1.00. .. image:: argentina/argentina_edi_20.png :align: center -You should use the pencil that is the next to the Perception amount to edit it -and set the correct amount. +You should use the pencil that is the next to the Perception amount to edit it +and set the correct amount. .. image:: argentina/argentina_edi_21.png :align: center - -After this is done the invoice can be validated. - - + +After this is done the invoice can be validated. + + Reports ======= diff --git a/content/applications/finance/accounting/fiscal_localizations/localizations/germany.rst b/content/applications/finance/accounting/fiscal_localizations/localizations/germany.rst index 73acbca0e..ba6be4777 100644 --- a/content/applications/finance/accounting/fiscal_localizations/localizations/germany.rst +++ b/content/applications/finance/accounting/fiscal_localizations/localizations/germany.rst @@ -9,7 +9,7 @@ The chart of accounts SKR03 and SKR04 are both supported in Odoo. You can choose one you want by going in :menuselection:`Accounting --> Configuration` then choose the package you want in the Fiscal Localization section. -Be careful, you can only change the accounting package as long as you have not created any accounting entry. +Be careful, you can only change the accounting package as long as you have not created any accounting entry. .. tip:: @@ -20,7 +20,7 @@ German Accounting Reports Here is the list of German-specific reports available on Odoo Enterprise: -- Balance Sheet +- Balance Sheet - Profit & Loss - Tax Report (Umsatzsteuervoranmeldung) - Partner VAT Intra diff --git a/content/applications/finance/accounting/fiscal_localizations/localizations/italy.rst b/content/applications/finance/accounting/fiscal_localizations/localizations/italy.rst index c34fc4edc..03dccee07 100644 --- a/content/applications/finance/accounting/fiscal_localizations/localizations/italy.rst +++ b/content/applications/finance/accounting/fiscal_localizations/localizations/italy.rst @@ -37,7 +37,7 @@ Give Odoo permission to process files Since the files are transmitted through Odoo's server before being sent to SDICoop or received by your database, you need to authorize Odoo to process your files from your database. -To do this, go to :menuselection:`Accounting --> Settings --> Electronic Invoicing` and click on +To do this, go to :menuselection:`Accounting --> Settings --> Electronic Invoicing` and click on *Register*. .. image:: italy/register.png diff --git a/content/applications/finance/accounting/fiscal_localizations/localizations/peru.rst b/content/applications/finance/accounting/fiscal_localizations/localizations/peru.rst index d0b15b429..daf55ffa9 100644 --- a/content/applications/finance/accounting/fiscal_localizations/localizations/peru.rst +++ b/content/applications/finance/accounting/fiscal_localizations/localizations/peru.rst @@ -5,20 +5,20 @@ Peru Introduction ============ -The Peruvian localization has been improved and extended, in this version the next modules are +The Peruvian localization has been improved and extended, in this version the next modules are available: - **l10n_pe**: Adds accounting features for the Peruvian localization, which represent the minimal - configuration required for a company to operate in Peru and under the SUNAT regulations and - guidelines. The main elements included in this module are: Chart of account, taxes, - document types. + configuration required for a company to operate in Peru and under the SUNAT regulations and + guidelines. The main elements included in this module are: Chart of account, taxes, + document types. -- **l10n_pe_edi**: includes all technical and functional requirements to generate and validate - Electronic Invoice, based on the SUNAT specification to create and process valid electronic - documents, for more technical detail you can access the +- **l10n_pe_edi**: includes all technical and functional requirements to generate and validate + Electronic Invoice, based on the SUNAT specification to create and process valid electronic + documents, for more technical detail you can access the `SUNAT EDI specifications `_, - that keeps track of new changes and updates. - The features of this module are based on the resolutions published on the + that keeps track of new changes and updates. + The features of this module are based on the resolutions published on the `SUNAT Legislation `_. Configuration @@ -27,24 +27,24 @@ Configuration Install the Peruvian localization modules ----------------------------------------- -Go to *Apps* and search for Peru, then click Install in the module Peru EDI. This module has a +Go to *Apps* and search for Peru, then click Install in the module Peru EDI. This module has a dependency with *Peru - Accounting*. In case this last one is not installed, Odoo installs it automatically within EDI. .. image:: peru/peru-modules.png :align: center - :alt: The "Module" filter is set on "Peru" + :alt: The "Module" filter is set on "Peru" .. note:: - When you install a database from scratch selecting Peru as country, Odoo automatically + When you install a database from scratch selecting Peru as country, Odoo automatically installs the base module: Peru - Accounting. - + Configure your company ~~~~~~~~~~~~~~~~~~~~~~ In addition to the basic information in the Company, we need to set Peru as the Country, this is -essential for the Electronic Invoice to work properly. The field **Address Type Code** represents -the establishment code assigned by the SUNAT when companies register their RUC (Unique Contributor +essential for the Electronic Invoice to work properly. The field **Address Type Code** represents +the establishment code assigned by the SUNAT when companies register their RUC (Unique Contributor Registration): .. image:: peru/peru-company.png @@ -53,18 +53,18 @@ Registration): .. tip:: - In case the Address type code is unknown, you can set it as the default value: 0000. Be aware - that if an incorrect value is entered, the Electronic invoice validation might have errors. - + In case the Address type code is unknown, you can set it as the default value: 0000. Be aware + that if an incorrect value is entered, the Electronic invoice validation might have errors. + .. note:: The NIF should be set following the RUC format. - + Chart of Account ~~~~~~~~~~~~~~~~ -The chart of accounts is installed by default as part of the set of data included in the -localization module, the accounts are mapped automatically in: +The chart of accounts is installed by default as part of the set of data included in the +localization module, the accounts are mapped automatically in: - Taxes - Default Account Payable. @@ -77,20 +77,20 @@ accounting. Accounting Settings ------------------- -Once the modules are installed and the basic information of your company is set, you need to -configure the elements required for Electronic Invoice. For this, go to :menuselection:`Accounting +Once the modules are installed and the basic information of your company is set, you need to +configure the elements required for Electronic Invoice. For this, go to :menuselection:`Accounting --> Settings --> Peruvian Localization`. Basic Concepts ~~~~~~~~~~~~~~ -Here are some terms that are essential on the Peruvian localization: +Here are some terms that are essential on the Peruvian localization: -- **EDI**: Electronic Data Interchange, which in this refers to the Electronic Invoice. +- **EDI**: Electronic Data Interchange, which in this refers to the Electronic Invoice. - **SUNAT**: is the organization that enforces customs and taxation in Peru. -- **OSE**: Electronic Service Operator, `OSE SUNAT's definition +- **OSE**: Electronic Service Operator, `OSE SUNAT's definition `_. -- **CDR**: Receipt certificate (Constancia de Recepción). +- **CDR**: Receipt certificate (Constancia de Recepción). - **SOL Credentials**: Sunat Operaciones en Línea. User and password are provided by the SUNAT and grant access to Online Operations systems. @@ -112,12 +112,12 @@ IAP (Odoo In-App Purchase) ************************** This is the default and the suggested option, considering the digital ceritificate is included as -part of the service. +part of the service. .. image:: peru/peru-IAP.png :align: center :alt: IAP option as signature providers - + What is the IAP? ^^^^^^^^^^^^^^^^ @@ -146,34 +146,34 @@ Package. | 20,000 | 440 | +---------+-----+ -The credits are consumed per each document that is sent to the OSE. +The credits are consumed per each document that is sent to the OSE. .. important:: - If you have a validation error and the document needs to be sent one more time, one additional - credit will be charged. Therefore, it is paramount that you verify all information is correct + If you have a validation error and the document needs to be sent one more time, one additional + credit will be charged. Therefore, it is paramount that you verify all information is correct before sending your document to the OSE. What do you need to do? ^^^^^^^^^^^^^^^^^^^^^^^ -- In Odoo, once your enterprise contract is activated and you start working in Production, you +- In Odoo, once your enterprise contract is activated and you start working in Production, you need to buy credits once the first 1000 are consumed. -- As Digiflow is the OSE used in the IAP, you need to affiliate it as the official OSE for your +- As Digiflow is the OSE used in the IAP, you need to affiliate it as the official OSE for your company on the SUNAT website. This is a simple process. For more information, please check - `OSE Affiliation guide + `OSE Affiliation guide `_. - Register Digiflow as the authorized PSE, please check - `PSE Affiliation guide + `PSE Affiliation guide `_. Digiflow ******** -This option can be used as an alternative, instead of using the IAP services you can send your +This option can be used as an alternative, instead of using the IAP services you can send your document validation directly to Digiflow. In this case you need to consider: -- Buy your own digital Certificate: For more detail regarding the official vendor list, and the - process to acquire it, please refer to `SUNAT Digital Ceritifcates +- Buy your own digital Certificate: For more detail regarding the official vendor list, and the + process to acquire it, please refer to `SUNAT Digital Ceritifcates `_. - Sign a service agreement directly with `Digiflow `_. - Provide your SOL credentials. @@ -185,14 +185,14 @@ document validation directly to Digiflow. In this case you need to consider: SUNAT ***** -In case your company wants to sign directly with the SUNAT, it is possible to select this option +In case your company wants to sign directly with the SUNAT, it is possible to select this option in your configuration. In this case you need to consider: - Get the SUNAT Certification process accepted. -- Buy your own digital Certificate: For more detail regarding the official vendor list, and the - process to acquire it, please refer to `SUNAT Digital Ceritifcates +- Buy your own digital Certificate: For more detail regarding the official vendor list, and the + process to acquire it, please refer to `SUNAT Digital Ceritifcates `_. - + - Provide you SOL credentials. .. important:: @@ -202,14 +202,14 @@ in your configuration. In this case you need to consider: Testing environment ~~~~~~~~~~~~~~~~~~~ -Odoo provides a testing environment that can be activated before your company goes into production. +Odoo provides a testing environment that can be activated before your company goes into production. -When using the testing environment and the IAP signature, you don’t need to buy testing credits +When using the testing environment and the IAP signature, you don’t need to buy testing credits for your transactions as all of them are validated by default. .. tip:: - By default the databases are set to work on production, make sure to enable the testing mode - if needed. + By default the databases are set to work on production, make sure to enable the testing mode + if needed. Certificate ~~~~~~~~~~~ @@ -221,17 +221,17 @@ password. .. image:: peru/peru-Certificate.png :align: center :alt: EDI Certificate wizard - + Multicurrency ~~~~~~~~~~~~~ -The official currency exchange rate in Peru is provided by the Bank of Peru. Odoo can connect +The official currency exchange rate in Peru is provided by the Bank of Peru. Odoo can connect directly to its services and get the currency rate either automatically or manually. .. image:: peru/peru-multicurrency.png :align: center :alt: Bank of Peru is displayed in Multicurrency Service option - + Please refer to the next section in our documentation for more information about :doc:`multicurrencies <../../others/multi_currency>`. @@ -241,7 +241,7 @@ Configure Master data Taxes ~~~~~ -As part of the localization module the taxes are created automatically with their related +As part of the localization module the taxes are created automatically with their related financial account and electronic invoice configuration. .. image:: peru/peru-taxes.png @@ -251,9 +251,9 @@ financial account and electronic invoice configuration. EDI Configuration ***************** -As part of the taxes configuration, there are three new fields required for electronic invoice, -the taxes created by default have this data included, but in case you create new taxes make -sure you fill in the fields: +As part of the taxes configuration, there are three new fields required for electronic invoice, +the taxes created by default have this data included, but in case you create new taxes make +sure you fill in the fields: .. image:: peru/peru-taxes-edi.png :align: center @@ -272,15 +272,15 @@ There are two main fiscal positions included by default when you install the Per Document Types ~~~~~~~~~~~~~~ -In some Latin American countries, including Peru, some accounting transactions like invoices and -vendor bills are classified by document types, defined by the government fiscal authorities, in -this case by the SUNAT. +In some Latin American countries, including Peru, some accounting transactions like invoices and +vendor bills are classified by document types, defined by the government fiscal authorities, in +this case by the SUNAT. -Each document type can have a unique sequence per journal where it is assigned. As part of the -localization, the Document Type includes the country on which the document is applicable;the data +Each document type can have a unique sequence per journal where it is assigned. As part of the +localization, the Document Type includes the country on which the document is applicable;the data is created automatically when the localization module is installed. - -The information required for the document types is included by default so the user does not need + +The information required for the document types is included by default so the user does not need to fill anything on this view: .. image:: peru/peru-document-type.png @@ -288,7 +288,7 @@ to fill anything on this view: :alt: Document Type list .. warning:: - Currently the documents supported on customer invoices are: Invoice, Boleta, Debit Note and + Currently the documents supported on customer invoices are: Invoice, Boleta, Debit Note and Credit Note. Journals @@ -297,17 +297,17 @@ Journals When creating Sales Journals, the following information must be filled, in addition to the standard fields on the Journals: -Use Documents +Use Documents ************* -This field is used to define if the journal uses Document Types. It is only applicable to -Purchase and Sales journals, which are the ones that can be related to the different set of -document types available in Peru. By default, all the sales journals created use documents. +This field is used to define if the journal uses Document Types. It is only applicable to +Purchase and Sales journals, which are the ones that can be related to the different set of +document types available in Peru. By default, all the sales journals created use documents. Electronic Data Interchange *************************** -This section indicates which EDI workflow is used in the invoice, for Peru we must select +This section indicates which EDI workflow is used in the invoice, for Peru we must select “Peru UBL 2.1”. .. image:: peru/peru-journal-edi.png @@ -323,8 +323,8 @@ Partner Identification Type and VAT *************************** -As part of the Peruvian localization, the identification types defined by the SUNAT are now -available on the Partner form, this information is essential for most transactions either on +As part of the Peruvian localization, the identification types defined by the SUNAT are now +available on the Partner form, this information is essential for most transactions either on the sender company and in the customer, make sure you fill in this information in your records. .. image:: peru/peru-id-type.png @@ -335,8 +335,8 @@ the sender company and in the customer, make sure you fill in this information i Product ~~~~~~~ -Additional to the basic information in your products, for the Peruvian localization, the UNSPC -Code on the product is a required value to be configured. +Additional to the basic information in your products, for the Peruvian localization, the UNSPC +Code on the product is a required value to be configured. .. image:: peru/peru-unspc-code.png :align: center @@ -354,27 +354,27 @@ EDI Elements Once you have configured your master data, the invoices can be created from your sales order or manually. Additional to the basic invoice information described on :doc:`our page about the -invoicing process <../../receivables/customer_invoices/overview>`, there are a couple of fields +invoicing process <../../receivables/customer_invoices/overview>`, there are a couple of fields required as part of the Peru EDI: -- **Document type**: The default value is “Factura Electronica” but you can manually change the - document type if needed and select Boleta for example. +- **Document type**: The default value is “Factura Electronica” but you can manually change the + document type if needed and select Boleta for example. .. image:: peru/peru-invoice-document-type.png :align: center :alt: Invoice document type field on invoices -- **Operation type**: This value is required for Electronic Invoice and indicates the transaction - type, the default value is “Internal Sale” but another value can be selected manually when needed, - for example Export of Goods. +- **Operation type**: This value is required for Electronic Invoice and indicates the transaction + type, the default value is “Internal Sale” but another value can be selected manually when needed, + for example Export of Goods. .. image:: peru/peru-operation-type.png :align: center :alt: Invoice operation type field on invoices -- **EDI Affectation Reason**: In the invoice lines, additional to the Tax there is a field “EDI - Affectation Reason” that determines the tax scope based on the SUNAT list that is displayed. - All the taxes loaded by default are associated with a default EDI affection reason, if needed +- **EDI Affectation Reason**: In the invoice lines, additional to the Tax there is a field “EDI + Affectation Reason” that determines the tax scope based on the SUNAT list that is displayed. + All the taxes loaded by default are associated with a default EDI affection reason, if needed you can manually select another one when creating the invoice. .. image:: peru/peru-tax-affectation-reason.png @@ -385,70 +385,70 @@ Invoice validation ~~~~~~~~~~~~~~~~~~ Once you check all the information in your invoice is correct, you can proceed to validate it. This -action registers the account move and triggers the Electronic invoice workflow to send it to the +action registers the account move and triggers the Electronic invoice workflow to send it to the OSE and the SUNAT. The following message is displayed at the top of the invoice: .. image:: peru/peru-posted-invoice.png :align: center :alt: Sending of EDI Invoice in blue -Asynchronous means that the document is not sent automatically after the invoice has been posted. +Asynchronous means that the document is not sent automatically after the invoice has been posted. Electronic Invoice Status ************************* -**To be Sent**: To be sent: Indicates the document is ready to be sent to the OSE, this can be -done either automatically by Odoo with a *cron* that runs every hour, or the user can send it +**To be Sent**: To be sent: Indicates the document is ready to be sent to the OSE, this can be +done either automatically by Odoo with a *cron* that runs every hour, or the user can send it immediately by clicking on the button “Sent now”. .. image:: peru/peru-sent-manual.png :align: center :alt: Send EDI manually -**Sent**: Indicates the document was sent to the OSE and was successfully validated. As part of -the validation a ZIP file is downloaded and a message is logged in the chatter indicating the -correct Government validation. +**Sent**: Indicates the document was sent to the OSE and was successfully validated. As part of +the validation a ZIP file is downloaded and a message is logged in the chatter indicating the +correct Government validation. .. image:: peru/peru-invoice-sent.png :align: center :alt: Message on chatter when the invoice is valid -In case there is a validation error the Electronic Invoice status remains in “To be sent” so the -corrections can be made and the invoice can be sent again. +In case there is a validation error the Electronic Invoice status remains in “To be sent” so the +corrections can be made and the invoice can be sent again. .. warning:: - One credit is consumed each time that you send a document for validation, in this sense if an - error is detected on an invoice and you send it one more time, two credits are consumed in + One credit is consumed each time that you send a document for validation, in this sense if an + error is detected on an invoice and you send it one more time, two credits are consumed in total. Common Errors ~~~~~~~~~~~~~ -There are multiple reasons behind a rejection from the OSE or the SUNAT, when this happens Odoo -sends a message at the top of the invoice indicating the error details and in the most common -cases a hint to fix the issue. +There are multiple reasons behind a rejection from the OSE or the SUNAT, when this happens Odoo +sends a message at the top of the invoice indicating the error details and in the most common +cases a hint to fix the issue. -If a validation error is received, you have two options: +If a validation error is received, you have two options: - In case the error is related to master data on the partner, customer or taxes, you can simply - apply the change on the record (example customer identification type) and once it is done click - on the Retry button. -- If the error is related to some data recorded on the invoice directly (Operation type, missing - data on the invoice lines), the correct solution is to reset the invoice to Draft, apply the - changes, and then send the invoice again to the SUNAT for another validation. + apply the change on the record (example customer identification type) and once it is done click + on the Retry button. +- If the error is related to some data recorded on the invoice directly (Operation type, missing + data on the invoice lines), the correct solution is to reset the invoice to Draft, apply the + changes, and then send the invoice again to the SUNAT for another validation. .. image:: peru/peru-errors.png :align: center :alt: List of common errors on invoices -For more detail please refert to `Common errors in SUNAT +For more detail please refert to `Common errors in SUNAT `_. Invoice PDF Report ~~~~~~~~~~~~~~~~~~ -After the invoice is accepted and validated by the SUNAT, the invoice PDF report can be printed. +After the invoice is accepted and validated by the SUNAT, the invoice PDF report can be printed. The report includes a QR code, indicating the invoice is a valid fiscal document. .. image:: peru/peru-PDF.png @@ -458,18 +458,18 @@ The report includes a QR code, indicating the invoice is a valid fiscal document IAP Credits ~~~~~~~~~~~ -Odoo’s Electronic IAP offers 1000 credits for free, after these credits are consumed in your -production database, your company must buy new credits in order to process your transactions. +Odoo’s Electronic IAP offers 1000 credits for free, after these credits are consumed in your +production database, your company must buy new credits in order to process your transactions. -Once you run out of credits a red label is displayed at the top of the invoice indicating that -additional credits are required, you can easily buy them by accessing the link provided in -the message. +Once you run out of credits a red label is displayed at the top of the invoice indicating that +additional credits are required, you can easily buy them by accessing the link provided in +the message. .. image:: peru/peru-credits-IAP.png :align: center :alt: Buying credits in the IAP -In the IAP service includes packages with different pricing based on the number of credits. +In the IAP service includes packages with different pricing based on the number of credits. The price list in the IAP is always displayed in EUR. Special Use cases @@ -478,30 +478,30 @@ Special Use cases Cancellation process ******************** -Some scenarios require an invoice cancellation, for example, when an invoice was created by mistake. -If the invoice was already sent and validated by the SUNAT, the correct way to proceed is by +Some scenarios require an invoice cancellation, for example, when an invoice was created by mistake. +If the invoice was already sent and validated by the SUNAT, the correct way to proceed is by clicking on the button Request Cancellation: .. image:: peru/peru-cancellation.png :align: center :alt: Request invoice cancellation button -In order to cancel an invoice, please provide a cancellation Reason. +In order to cancel an invoice, please provide a cancellation Reason. Electronic Invoice Status ^^^^^^^^^^^^^^^^^^^^^^^^^ -**To Cancel**: Indicates the cancellation request is ready to be sent to the OSE, this can be done -either automatically by Odoo with a *cron* that runs every hour, or the user can send it -immediately by clicking on the button “Send now”. Once it is sent, a cancellation ticket is +**To Cancel**: Indicates the cancellation request is ready to be sent to the OSE, this can be done +either automatically by Odoo with a *cron* that runs every hour, or the user can send it +immediately by clicking on the button “Send now”. Once it is sent, a cancellation ticket is created, as a result the next message and CDR File are logged in the chatter: .. image:: peru/peru-cancellation-cdr.png :align: center :alt: Cancellation CDR sent by the SUNAT - -**Cancelled**: Indicates the cancellation request was sent to the OSE and was successfully -validated. As part of the validation a ZIP file is downloaded and a message is logged in the + +**Cancelled**: Indicates the cancellation request was sent to the OSE and was successfully +validated. As part of the validation a ZIP file is downloaded and a message is logged in the chatter indicating the correct Government validation. .. image:: peru/peru-cancelled.png @@ -510,14 +510,14 @@ chatter indicating the correct Government validation. .. warning:: One credit is consumed on each cancellation request. - + Cancellation process ******************** When creating exportation invoices, take into account the next considerations: -- The Identification type on your customer must be Foreign ID. -- Operation type in your invoice must be an Exportation one. +- The Identification type on your customer must be Foreign ID. +- Operation type in your invoice must be an Exportation one. - The taxes included in the invoice lines should be EXP taxes. .. image:: peru/peru-exp-invoice.png @@ -527,24 +527,24 @@ When creating exportation invoices, take into account the next considerations: Advance Payments **************** -#. Create the advance payment Invoice and apply its related payment. -#. Create the final invoice without considering the advance payment. -#. Create a credit note for the Final invoice with the advance payment amount. -#. Reconcile the Credit note with the final invoice. -#. The remaining balance on the final invoice should be paid with a regular payment transaction. +#. Create the advance payment Invoice and apply its related payment. +#. Create the final invoice without considering the advance payment. +#. Create a credit note for the Final invoice with the advance payment amount. +#. Reconcile the Credit note with the final invoice. +#. The remaining balance on the final invoice should be paid with a regular payment transaction. -Detraction Invoices +Detraction Invoices ******************** -When creating invoices that is subject to Detractions, take into account the next considerations: +When creating invoices that is subject to Detractions, take into account the next considerations: -#. All the products included in the invoice must have these fields configured: +#. All the products included in the invoice must have these fields configured: .. image:: peru/peru-detraction.png :align: center :alt: Detraction fields on products - + #. Operation type in your invoice must be ``1001`` .. image:: peru/peru-detraction-invoice.png @@ -554,8 +554,8 @@ When creating invoices that is subject to Detractions, take into account the nex Credit Notes ------------ -When a correction or refund is needed over a validated invoice, a credit note must be generated, -for this just click on the button “Add Credit Note”, a part of the Peruvian localization you need +When a correction or refund is needed over a validated invoice, a credit note must be generated, +for this just click on the button “Add Credit Note”, a part of the Peruvian localization you need to prove a Credit Reason selecting one of the options in the list. .. image:: peru/peru-credit-note.png @@ -563,9 +563,9 @@ to prove a Credit Reason selecting one of the options in the list. :alt: Add Credit Note from invoice .. tip:: - When creating your first credit Note, select the Credit Method: Partial Refund, this allows you - to define the credit note sequence. - + When creating your first credit Note, select the Credit Method: Partial Refund, this allows you + to define the credit note sequence. + By default the Credit Note is set in the document type: .. image:: peru/peru-credit-note-document.png @@ -576,13 +576,13 @@ To finish the workflow please follow the instructions on :doc:`our page about Cr <../../receivables/customer_invoices/credit_notes>`. .. note:: - The EDI workflow for the Credit notes works in the same way as the invoices. + The EDI workflow for the Credit notes works in the same way as the invoices. Debit Notes ------------ -As part of the Peruvian localization, besides creating credit notes from an existing document +As part of the Peruvian localization, besides creating credit notes from an existing document you can also create debit Notes. For this just use the button “Add Debit Note”. By default the Debit Note is set in the document type. diff --git a/content/applications/finance/accounting/fiscal_localizations/localizations/spain.rst b/content/applications/finance/accounting/fiscal_localizations/localizations/spain.rst index 5cdded240..e0ef31f8e 100644 --- a/content/applications/finance/accounting/fiscal_localizations/localizations/spain.rst +++ b/content/applications/finance/accounting/fiscal_localizations/localizations/spain.rst @@ -9,12 +9,12 @@ In Odoo, there are several Spanish Chart of Accounts that are available by defau - PGCE PYMEs 2008 - PGCE Completo 2008 -- PGCE Entitades +- PGCE Entitades You can choose the one you want by going in :menuselection:`Accounting --> Configuration` -then choose the package you want in the **Fiscal Localization** section. +then choose the package you want in the **Fiscal Localization** section. -Be careful, you can only change the accounting package as long as you have not created any accounting entry. +Be careful, you can only change the accounting package as long as you have not created any accounting entry. .. tip:: When you create a new Odoo Online database, the PGCE PYMEs 2008 is installed by default. @@ -24,7 +24,7 @@ Spanish Accounting Reports If the Spanish Accounting Localization is installed, you will have access to accounting reports specific to Spain: -- Balance Sheet +- Balance Sheet - Tax Report (Modelo 111) - Tax Report (Modelo 115) -- Tax Report (Modelo 303) +- Tax Report (Modelo 303) diff --git a/content/applications/finance/accounting/fiscal_localizations/localizations/switzerland.rst b/content/applications/finance/accounting/fiscal_localizations/localizations/switzerland.rst index 16d3be4a5..e24675029 100644 --- a/content/applications/finance/accounting/fiscal_localizations/localizations/switzerland.rst +++ b/content/applications/finance/accounting/fiscal_localizations/localizations/switzerland.rst @@ -12,7 +12,7 @@ called *Print ISR*. .. image:: switzerland/switzerland00.png :align: center -.. tip:: +.. tip:: The button *Print ISR* only appears there is well a bank account defined on the invoice. You can use CH6309000000250097798 as bank account number and 010391391 as CHF ISR reference. @@ -142,4 +142,4 @@ odoo.com/help. .. tip:: Don't forget to update your fiscal positions. If you have a version 11.1 (or higher), there is nothing to do. Otherwise, you will also - have to update your fiscal positions accordingly. + have to update your fiscal positions accordingly. diff --git a/content/applications/finance/accounting/getting_started/process_overview/supplier_bill.rst b/content/applications/finance/accounting/getting_started/process_overview/supplier_bill.rst index 5c34c137f..00245e5d8 100644 --- a/content/applications/finance/accounting/getting_started/process_overview/supplier_bill.rst +++ b/content/applications/finance/accounting/getting_started/process_overview/supplier_bill.rst @@ -17,7 +17,7 @@ From Vendor Bill to Payment Record a new vendor bill ------------------------ -When a vendor bill is received, you can record it from :menuselection:`Purchases --> Vendor Bills` +When a vendor bill is received, you can record it from :menuselection:`Purchases --> Vendor Bills` in the Accounting application. As a shortcut, you can also use the **New Bill** feature on the accounting dashboard. @@ -36,12 +36,12 @@ Save the invoice to update the pre tax and tax amounts at the bottom of the screen. You will most likely need to configure the prices of your products without taxes as Odoo will compute the tax for you. -.. note:: - On the bottom left corner, Odoo shows a summary table of all taxes on the vendor bill. - In several countries, different methods are accepted to round the totals (round per line, - or round globally). The default rounding method in Odoo is to round the final prices - per line (as you may have different taxes per product. E.g. Alcohol and cigarettes). - However if your vendor has a different tax amount on their bill, you can change the +.. note:: + On the bottom left corner, Odoo shows a summary table of all taxes on the vendor bill. + In several countries, different methods are accepted to round the totals (round per line, + or round globally). The default rounding method in Odoo is to round the final prices + per line (as you may have different taxes per product. E.g. Alcohol and cigarettes). + However if your vendor has a different tax amount on their bill, you can change the amount in the bottom left table to adjust and match. Validate The Vendor Bill @@ -91,8 +91,8 @@ if set it correctly). .. note:: - You can also register a payment to a vendor directly without applying it to a vendor bill. - To do that, :menuselection:`Purchases --> Payments`. Then, + You can also register a payment to a vendor directly without applying it to a vendor bill. + To do that, :menuselection:`Purchases --> Payments`. Then, from the vendor bill you will be able to reconcile this payment with directly. Printing vendor Checks diff --git a/content/applications/finance/accounting/others/adviser/budget.rst b/content/applications/finance/accounting/others/adviser/budget.rst index fee9f7470..c29341d84 100644 --- a/content/applications/finance/accounting/others/adviser/budget.rst +++ b/content/applications/finance/accounting/others/adviser/budget.rst @@ -7,9 +7,9 @@ Overview Managing budgets is an essential part of running a business. Budgets help people become more intentional with the way money is spent and direct people -to organize and prioritize their work to meet financial goals. They allows -you to plan your desired financial outcome and then measure your actual -performance against the plan. Odoo manages budgets using both General and Analytic +to organize and prioritize their work to meet financial goals. They allows +you to plan your desired financial outcome and then measure your actual +performance against the plan. Odoo manages budgets using both General and Analytic Accounts. We will use the following example to illustrate. We just started a @@ -17,7 +17,7 @@ project with Smith&Co and we would like to budget the incomes and expenses of that project. We plan to have a revenue of 1000 and we don't want to spend more than 700. -Configuration +Configuration ============= First we need to install the relevant apps to use budgeting. The main @@ -40,17 +40,17 @@ Budgetary Positions Budgetary positions are lists of accounts for which you want to keep budgets (typically expense or income accounts). They need to be defined so Odoo can know it which accounts he needs to go get the budget -information. +information. The budgetary positions act as a type of restriction on what can be recorded in the 'practical amount' column in a budget. -Each budgetary position can have any number of accounts from the general -ledger (the main chart of accounts) assigned to it, though it must have at least one. +Each budgetary position can have any number of accounts from the general +ledger (the main chart of accounts) assigned to it, though it must have at least one. -If you record a transaction that has an analytic account assigned to it that *is* -included in a budget line but one of the general ledger accounts *is not* included -in the budgetary position for that same budget line, it will not appear within the +If you record a transaction that has an analytic account assigned to it that *is* +included in a budget line but one of the general ledger accounts *is not* included +in the budgetary position for that same budget line, it will not appear within the 'practical amount' column of that budget line. Some budgetary positions might be already installed with your chart of diff --git a/content/applications/finance/accounting/others/analytic/timesheets.rst b/content/applications/finance/accounting/others/analytic/timesheets.rst index 094fae568..048540c0a 100644 --- a/content/applications/finance/accounting/others/analytic/timesheets.rst +++ b/content/applications/finance/accounting/others/analytic/timesheets.rst @@ -19,7 +19,7 @@ First, install the three applications necessary to use this functionality, namely **Accounting**, **Sales** and **Timesheet**. Enter the apps module name and install them. -.. image:: timesheets/timesheets14.png +.. image:: timesheets/timesheets14.png :align: center .. image:: timesheets/timesheets05.png @@ -51,14 +51,14 @@ cost of 18 euros / hours. We will thus fill in 18 in this field. .. image:: timesheets/timesheets07.png :align: center -.. note:: +.. note:: If you want the employee to be able to enter timesheets he needs to be related to a User. Repeat the operation to create the Cedric Digory employee. Don't forget to specify its related user and **Timesheet Costs**. -Issue a Sales Order +Issue a Sales Order -------------------- We created two employees called Harry Potter and Cedric Diggory in the @@ -121,7 +121,7 @@ Without filters If we pointed all our costs and revenues of the project on the correct analytical account we can easily retrieve the cost and revenues related -to this analytical account. Enter the *Accounting* app, select +to this analytical account. Enter the *Accounting* app, select :menuselection:`Adviser --> Analytic Accounts --> Open Charts`. Note : you can specify a period for **Analysis**. If you want to open the diff --git a/content/applications/finance/accounting/payables/pay/sepa.rst b/content/applications/finance/accounting/payables/pay/sepa.rst index 55804469a..4319da4f2 100644 --- a/content/applications/finance/accounting/payables/pay/sepa.rst +++ b/content/applications/finance/accounting/payables/pay/sepa.rst @@ -13,11 +13,11 @@ Iceland, Norway, Switzerland, Andorra, Monaco and San Marino. With Odoo, once you decide to pay a vendor, you can select to pay the bill with SEPA. Then, at the end of the day, the manager can generate the SEPA file containing all bank wire transfers and send it to the -bank. +bank. By default,the file follows the SEPA Credit Transfer **'pain.001.001.03'** specifications. This is a well-defined standard that makes consensus -among banks. However, according to the country set on your company, +among banks. However, according to the country set on your company, another format can be used : **'pain.001.001.03.ch.02'** for Switzerland and **'pain.001.003.03'** for Germany. diff --git a/content/applications/finance/accounting/receivables/customer_invoices/cash_rounding.rst b/content/applications/finance/accounting/receivables/customer_invoices/cash_rounding.rst index fe1e73b49..d467c822f 100644 --- a/content/applications/finance/accounting/receivables/customer_invoices/cash_rounding.rst +++ b/content/applications/finance/accounting/receivables/customer_invoices/cash_rounding.rst @@ -3,11 +3,11 @@ Cash rounding ============= **Cash rounding** is required when the lowest physical denomination -of currency, or the smallest coin, is higher than the minimum unit +of currency, or the smallest coin, is higher than the minimum unit of account. -For example, some countries require their companies to round up or -down the total amount of an invoice to the nearest five cents, when +For example, some countries require their companies to round up or +down the total amount of an invoice to the nearest five cents, when the payment is made in cash. Configuration @@ -19,22 +19,22 @@ and enable *Cash Rounding*, then click on *Save*. .. image:: cash_rounding/cash_rounding01.png :align: center -Go to :menuselection:`Accounting --> Configuration --> Cash Roundings`, +Go to :menuselection:`Accounting --> Configuration --> Cash Roundings`, and click on *Create*. -Define here your *Rounding Precision*, *Rounding Strategy*, and +Define here your *Rounding Precision*, *Rounding Strategy*, and *Rounding Method*. Odoo supports two **rounding strategies**: -1. **Add a rounding line**: a *rounding* line is added on the invoice. +1. **Add a rounding line**: a *rounding* line is added on the invoice. You have to define which account records the cash roundings. - + 2. **Modify tax amount**: the rounding is applied in the taxes section. Apply roundings =============== When editing a draft invoice, open the *Other Info* tab, go to the -*Accounting Information* section, and select the appropriate *Cash +*Accounting Information* section, and select the appropriate *Cash Rounding Method*. diff --git a/content/applications/finance/accounting/receivables/customer_invoices/credit_notes.rst b/content/applications/finance/accounting/receivables/customer_invoices/credit_notes.rst index 27f8ea7fb..7a5495533 100644 --- a/content/applications/finance/accounting/receivables/customer_invoices/credit_notes.rst +++ b/content/applications/finance/accounting/receivables/customer_invoices/credit_notes.rst @@ -1,8 +1,8 @@ ======================== Credit notes and refunds ======================== -A **credit note**, or **credit memo**, is a document issued -to a customer that notifies them that they have been credited +A **credit note**, or **credit memo**, is a document issued +to a customer that notifies them that they have been credited a certain amount. There are several reasons that can lead to a credit note, such as: @@ -11,19 +11,19 @@ There are several reasons that can lead to a credit note, such as: * the goods delivered are damaged .. note:: - Issuing a credit note is the only legal way to cancel, - refund or modify a validated invoice. Don’t forget to + Issuing a credit note is the only legal way to cancel, + refund or modify a validated invoice. Don’t forget to *register the payment* afterward if you need to send money back to your customer. Issue a Credit Note =================== -You can create a credit note from scratch by going to -:menuselection:`Accounting --> Customers --> Credit Notes`, -and by clicking on *Create*. Filling the Credit Note’s form +You can create a credit note from scratch by going to +:menuselection:`Accounting --> Customers --> Credit Notes`, +and by clicking on *Create*. Filling the Credit Note’s form works the same way as the Invoice’s form. -However, most of the time, credit notes are generated directly +However, most of the time, credit notes are generated directly from the invoices they are related to. To do so, open the *Customer Invoice*, and click on *Add Credit Note*. @@ -37,15 +37,15 @@ You can choose between three options: - Full refund and new draft invoice .. note:: - Credit Notes’ numbers start with “R” and are followed by the - number of the document they are related to (e.g., RINV/2019/0004). + Credit Notes’ numbers start with “R” and are followed by the + number of the document they are related to (e.g., RINV/2019/0004). Partial Refund -------------- -Odoo creates a draft credit note already prefilled with all the +Odoo creates a draft credit note already prefilled with all the necessary information from the original invoice. -This is the option to choose to do a partial refund, or if you +This is the option to choose to do a partial refund, or if you want to modify any detail on the credit note. .. note:: @@ -53,19 +53,19 @@ want to modify any detail on the credit note. Full Refund ----------- -Odoo creates a credit note, automatically validates it, and +Odoo creates a credit note, automatically validates it, and reconciles the original invoice with it. .. image:: credit_notes/credit_notes02.png :align: center -This is the option to choose to do a full refund or cancel +This is the option to choose to do a full refund or cancel a validated invoice. Full refund and new draft invoice --------------------------------- -Odoo creates a credit note, automatically validates it, reconciles -the original invoice with it, and open a new draft invoice +Odoo creates a credit note, automatically validates it, reconciles +the original invoice with it, and open a new draft invoice prefilled with the same details from the original invoice. This is the option to choose to modify the content of a validated invoice. @@ -74,22 +74,22 @@ Record a Vendor Refund ====================== **Vendor Refunds** are recorded the same way you would do with invoices’ credit notes: -You can either create a credit note from scratch by going -to :menuselection:`Accounting --> Vendors --> Refund`, and -by clicking on *Create*, or by opening the validated *Vendor Bill*, +You can either create a credit note from scratch by going +to :menuselection:`Accounting --> Vendors --> Refund`, and +by clicking on *Create*, or by opening the validated *Vendor Bill*, and clicking on *Add Credit Note*. - + Journal Entries =============== -Issuing a credit note from an invoice creates a **reverse entry** -that zeroes out the journal items generated by the original invoice. +Issuing a credit note from an invoice creates a **reverse entry** +that zeroes out the journal items generated by the original invoice. Here is an example of an invoice’s journal entry: .. image:: credit_notes/credit_notes03.png :align: center -And here is the credit note’s journal entry generated to reverse +And here is the credit note’s journal entry generated to reverse the original invoice above: .. image:: credit_notes/credit_notes04.png diff --git a/content/applications/finance/accounting/receivables/customer_invoices/deferred_revenues.rst b/content/applications/finance/accounting/receivables/customer_invoices/deferred_revenues.rst index 32e7c3202..156ef44d2 100644 --- a/content/applications/finance/accounting/receivables/customer_invoices/deferred_revenues.rst +++ b/content/applications/finance/accounting/receivables/customer_invoices/deferred_revenues.rst @@ -42,7 +42,7 @@ Configuration --> Chart of Accounts`, click on *Create*, and fill out the form. .. note:: This account's type must be either *Current Liabilities* or *Non-current Liabilities* - + Post an income to the right account ----------------------------------- @@ -64,7 +64,7 @@ save. .. image:: deferred_revenues/deferred_revenues03.png :align: center - :alt: Change of the Income Account for a product in Odoo + :alt: Change of the Income Account for a product in Odoo .. tip:: It is possible to automate the creation of revenue entries for these products (see: @@ -75,11 +75,11 @@ Change the account of a posted journal item To do so, open your Sales Journal by going to :menuselection:`Accounting --> Accounting --> Sales`, select the journal item you -want to modify, click on the account, and select the right one. +want to modify, click on the account, and select the right one. .. image:: deferred_revenues/deferred_revenues04.png :align: center - :alt: Modification of a posted journal item's account in Odoo Accounting + :alt: Modification of a posted journal item's account in Odoo Accounting Deferred Revenues entries ========================= @@ -107,8 +107,8 @@ recognize your revenue, and at which date. .. image:: deferred_revenues/deferred_revenues06.png :align: center - :alt: Revenue Board in Odoo Accounting - + :alt: Revenue Board in Odoo Accounting + What does "Prorata Temporis" mean? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -126,7 +126,7 @@ Deferred Entry from the Sales Journal You can create a deferred entry from a specific journal item in your **Sales Journal**. -To do so, open your Sales Journal by going to +To do so, open your Sales Journal by going to :menuselection:`Accounting --> Accounting --> Sales`, and select the journal item you want to defer. Make sure that it is posted in the right account (see: `Change the account of a posted journal item`_). diff --git a/content/applications/finance/accounting/receivables/customer_invoices/epc_qr_code.rst b/content/applications/finance/accounting/receivables/customer_invoices/epc_qr_code.rst index 70d05fe5e..980ecf327 100644 --- a/content/applications/finance/accounting/receivables/customer_invoices/epc_qr_code.rst +++ b/content/applications/finance/accounting/receivables/customer_invoices/epc_qr_code.rst @@ -1,36 +1,36 @@ ============================ Add EPC QR Codes to invoices ============================ -European Payments Council Quick Response Code, -or **EPC QR Code**, are two-dimensional barcodes -that customers can scan with their **mobile banking +European Payments Council Quick Response Code, +or **EPC QR Code**, are two-dimensional barcodes +that customers can scan with their **mobile banking applications** to initiate a **SEPA Credit Transfer (SCT)**, and pay their invoices instantly. -In addition to bringing ease of use and speed, -it greatly reduces typing errors that would potentially -make for payment issues. +In addition to bringing ease of use and speed, +it greatly reduces typing errors that would potentially +make for payment issues. .. note:: - This feature is only available in several European - countries such as Austria, Belgium, Finland, Germany, + This feature is only available in several European + countries such as Austria, Belgium, Finland, Germany, and The Netherlands. - + Configuration ============= -Go to :menuselection:`Accounting --> Configuration --> Settings` +Go to :menuselection:`Accounting --> Configuration --> Settings` and activate the **SEPA QR Code** feature. .. image:: epc_qr_code/epc_qr_code01.png :align: center - + Configure your Bank Account’s journal ------------------------------------- -Make sure that your *Bank Account* is correctly configured +Make sure that your *Bank Account* is correctly configured on Odoo with your IBAN and BIC. -To do so, go to :menuselection:`Accounting --> Configuration ---> Journals`, open your *bank journal*, then fill out the +To do so, go to :menuselection:`Accounting --> Configuration +--> Journals`, open your *bank journal*, then fill out the *Bank Account* and *Bank* under the *Bank Account* tab. .. image:: epc_qr_code/epc_qr_code02.png @@ -38,26 +38,26 @@ To do so, go to :menuselection:`Accounting --> Configuration Issue Invoices with EPC QR Codes ================================ -EPC QR Codes are added automatically to your invoices, as -long as you issue them to customers that are located in a +EPC QR Codes are added automatically to your invoices, as +long as you issue them to customers that are located in a country where this feature is available. -Go to :menuselection:`Accounting --> Customers --> Invoices`, -and create a new invoice. +Go to :menuselection:`Accounting --> Customers --> Invoices`, +and create a new invoice. -Before posting it, open the *Other Info* tab. Odoo automatically +Before posting it, open the *Other Info* tab. Odoo automatically fills out the *Bank Account* field with your IBAN. -Make sure that the account indicated is the one you want to use to -receive your customer’s payment as Odoo uses this field to generate +Make sure that the account indicated is the one you want to use to +receive your customer’s payment as Odoo uses this field to generate the EPC QR Code. .. image:: epc_qr_code/epc_qr_code03.png :align: center - + .. tip:: - If you want to issue an invoice without an EPC QR Code, - remove the IBAN indicated in the *Bank Account* field, + If you want to issue an invoice without an EPC QR Code, + remove the IBAN indicated in the *Bank Account* field, under the *Other Info* tab of the invoice. .. seealso:: diff --git a/content/applications/finance/accounting/receivables/customer_payments/batch_sdd.rst b/content/applications/finance/accounting/receivables/customer_payments/batch_sdd.rst index fcae042c4..eae0d0ddd 100644 --- a/content/applications/finance/accounting/receivables/customer_payments/batch_sdd.rst +++ b/content/applications/finance/accounting/receivables/customer_payments/batch_sdd.rst @@ -72,7 +72,7 @@ their SEPA Direct Debit mandate. .. todo:: Add link to future **Payment Provider** documentation. -Close or revoke a mandate +Close or revoke a mandate ------------------------- Direct Debit mandates are closed automatically after their *End Date*. If this field is left blank, @@ -95,7 +95,7 @@ included in the next SDD XML file. Get paid with SDD Batch Payments ================================ -Customer Invoices +Customer Invoices ----------------- You can register SDD payments for invoices issued to customers who have an active SDD mandate. diff --git a/content/applications/finance/accounting/receivables/customer_payments/check.rst b/content/applications/finance/accounting/receivables/customer_payments/check.rst index 7c7a72207..beafef4c4 100644 --- a/content/applications/finance/accounting/receivables/customer_payments/check.rst +++ b/content/applications/finance/accounting/receivables/customer_payments/check.rst @@ -6,14 +6,14 @@ There are two ways to handle payments received by checks. Odoo support both approaches so that you can use the one that better fits your habits. -1. **Undeposited Funds:** +1. **Undeposited Funds:** once you receive the check, you record a payment by check on the invoice. (using a Check journal and posted on the Undeposited Fund account) Then, once the check arrives in your bank account, move money from Undeposited Funds to your bank account. -2. **One journal entry only:** +2. **One journal entry only:** once your receive the check, you record a payment on your bank, paid by check, without going through the **Undeposited Funds**. Once you process your bank statement, you do @@ -28,7 +28,7 @@ Even if the first method is cleaner, Odoo support the second approach because some accountants are used to it (quickbooks and peachtree users). -.. Note:: +.. Note:: You may have a look at the *Deposit Ticket feature* if you deposit several checks to your bank accounts in batch. @@ -90,7 +90,7 @@ If you use this approach to manage received checks, you get the list of checks that have not been cashed in the **Undeposit Funds** account (accessible, for example, from the general ledger). -.. Note:: +.. Note:: Both methods will produce the same data in your accounting at the end of the process. But, if you have checks that have not been cashed, this one is cleaner because those checks have not been reported yet on @@ -135,7 +135,7 @@ books: | Bank | | 100.00 | | +----------------------+-------------------+----------+----------+ -.. tip:: +.. tip:: You may also record the payment directly without going on the customer invoice, using the menu :menuselection:`Sales --> Payments`. This method may be more convenient if you have a lot of checks to record in a batch but diff --git a/content/applications/finance/accounting/receivables/customer_payments/online_payment.rst b/content/applications/finance/accounting/receivables/customer_payments/online_payment.rst index d9063cebc..1147c0003 100644 --- a/content/applications/finance/accounting/receivables/customer_payments/online_payment.rst +++ b/content/applications/finance/accounting/receivables/customer_payments/online_payment.rst @@ -20,7 +20,7 @@ Make sure your :ref:`Payment Providers are correctly configured `" is the only Payment Provider activated, but you still have to fill out the payment details. -To activate the Invoice Online Payment, go to :menuselection:`Accounting --> Configuration --> +To activate the Invoice Online Payment, go to :menuselection:`Accounting --> Configuration --> Settings --> Customer Payments`, enable **Invoice Online Payment**, and click on *Save*. Customer Portal diff --git a/content/applications/finance/accounting/reporting/overview/customize.rst b/content/applications/finance/accounting/reporting/overview/customize.rst index 171b6ebf6..42b85652b 100644 --- a/content/applications/finance/accounting/reporting/overview/customize.rst +++ b/content/applications/finance/accounting/reporting/overview/customize.rst @@ -46,7 +46,7 @@ Add lines in your custom reports ================================= After you've created the report, you need to fill it with lines. They -all need a **name**, a **code** (that is used to refer to the line), a +all need a **name**, a **code** (that is used to refer to the line), a **sequence number** and a **level** (Used for the line rendering). .. image:: customize/customize04.png diff --git a/content/applications/finance/accounting/reporting/overview/main_reports.rst b/content/applications/finance/accounting/reporting/overview/main_reports.rst index 6b9325ed3..9565a0650 100644 --- a/content/applications/finance/accounting/reporting/overview/main_reports.rst +++ b/content/applications/finance/accounting/reporting/overview/main_reports.rst @@ -31,7 +31,7 @@ Balance Sheet The **Balance Sheet** shows a snapshot of the assets, liabilities and equity of your organisation as at a particular date. -.. image:: main_reports/main_reports09.png +.. image:: main_reports/main_reports09.png :align: center Profit and Loss @@ -41,7 +41,7 @@ The **Profit and Loss** report (or **Income Statement**) shows your organisation's net income, by deducting expenses from revenue for the report period. -.. image:: main_reports/main_reports10.png +.. image:: main_reports/main_reports10.png :align: center Executive Summary @@ -58,36 +58,36 @@ reporting : The contribution each individual sale made by your business less any direct costs needed to make those sales (things like labour, materials, etc). - - **Net profit margin:** + - **Net profit margin:** The contribution each individual sale made by your business less any direct costs needed to make those sales, as well as any fixed overheads your company has (things like rent, electricity, taxes you need to pay as a result of those sales). - - **Return on investment (p.a.):** + - **Return on investment (p.a.):** The ratio of net profit made, to the amount of assets the company used to make those profits. - **Position:** - - **Average debtor days:** + - **Average debtor days:** The average number of days it takes your customers to pay you (fully), across all your customer invoices. - **Average creditor days:** The average number of days it takes you to pay your suppliers (fully) across all your bills. - - **Short term cash forecast:** + - **Short term cash forecast:** How much cash is expected in or out of your organisation in the next month i.e. balance of your **Sales account** for the month less the balance of your **Purchases account** for the month. - - **Current assets to liabilities:** - Also referred to as **current ratio**, this is the ratio + - **Current assets to liabilities:** + Also referred to as **current ratio**, this is the ratio of current assets (assets that could be turned into cash within a year) to the current liabilities (liabilities which will be due in the next year). This is typically used as as a measure of a company's ability to service its debt. -.. image:: main_reports/main_reports01.png +.. image:: main_reports/main_reports01.png :align: center General Ledger @@ -99,7 +99,7 @@ account and from there you can view a detailed transaction report or any exceptions. This report is useful for checking every transaction that occurred during a certain period of time. -.. image:: main_reports/main_reports05.png +.. image:: main_reports/main_reports05.png :align: center Aged Payable @@ -109,7 +109,7 @@ Run the **Aged Payable Details** report to display information on individual bills, credit notes and overpayments owed by you, and how long these have gone unpaid. -.. image:: main_reports/main_reports02.png +.. image:: main_reports/main_reports02.png :align: center Aged Receivable @@ -118,7 +118,7 @@ Aged Receivable The **Aged Receivables** report shows the sales invoices that were awaiting payment during a selected month and several months prior. -.. image:: main_reports/main_reports07.png +.. image:: main_reports/main_reports07.png :align: center Cash Flow Statement @@ -128,7 +128,7 @@ The **Cash Flow Statement** shows how changes in balance sheet accounts and income affect cash and cash equivalents, and breaks the analysis down to operating, investing and financing activities. -.. image:: main_reports/main_reports03.png +.. image:: main_reports/main_reports03.png :align: center Tax Report @@ -137,11 +137,11 @@ Tax Report This report allows you to see the **net** and **tax amounts** for all the taxes grouped by type (sale/purchase). -.. image:: main_reports/main_reports04.png +.. image:: main_reports/main_reports04.png :align: center Bank Reconciliation ------------------- -.. image:: main_reports/main_reports06.png +.. image:: main_reports/main_reports06.png :align: center diff --git a/content/applications/finance/accounting/taxation/fiscal_year/fiscal_year.rst b/content/applications/finance/accounting/taxation/fiscal_year/fiscal_year.rst index ea8245f0f..d9429b0c7 100644 --- a/content/applications/finance/accounting/taxation/fiscal_year/fiscal_year.rst +++ b/content/applications/finance/accounting/taxation/fiscal_year/fiscal_year.rst @@ -29,6 +29,6 @@ You can then configure your fiscal years in You only have to create fiscal years if they last more or less than 12 months. -.. seealso:: +.. seealso:: * :doc:`close_fiscal_year` diff --git a/content/applications/finance/accounting/taxation/taxes.rst b/content/applications/finance/accounting/taxation/taxes.rst index b1b117615..465ef2092 100644 --- a/content/applications/finance/accounting/taxation/taxes.rst +++ b/content/applications/finance/accounting/taxation/taxes.rst @@ -11,7 +11,7 @@ Taxes taxes/default_taxes taxes/fiscal_positions taxes/eu_distance_selling - taxes/avatax + taxes/avatax taxes/taxcloud taxes/retention taxes/B2B_B2C diff --git a/content/applications/finance/accounting/taxation/taxes/B2B_B2C.rst b/content/applications/finance/accounting/taxation/taxes/B2B_B2C.rst index 760610741..61cea001f 100644 --- a/content/applications/finance/accounting/taxation/taxes/B2B_B2C.rst +++ b/content/applications/finance/accounting/taxation/taxes/B2B_B2C.rst @@ -114,19 +114,19 @@ Setting your products Your company must be configured with tax excluded by default. This is usually the default configuration, but you can check your **Default Sale -Tax** from the menu :menuselection:`Configuration --> Settings` +Tax** from the menu :menuselection:`Configuration --> Settings` of the Accounting application. .. image:: B2B_B2C/price_B2C_B2B01.png :align: center Once done, you can create a **B2C** pricelist. You can activate the -pricelist feature per customer from the menu: -:menuselection:`Configuration --> Settings` of the Sale application. +pricelist feature per customer from the menu: +:menuselection:`Configuration --> Settings` of the Sale application. Choose the option **different prices per customer segment**. -Once done, create a B2C pricelist from the menu -:menuselection:`Configuration --> Pricelists`. +Once done, create a B2C pricelist from the menu +:menuselection:`Configuration --> Pricelists`. It's also good to rename the default pricelist into B2B to avoid confusion. Then, create a product at 8.26€, with a tax of 21% (defined as tax not @@ -141,8 +141,8 @@ Setting the B2C fiscal position ------------------------------- From the accounting application, create a B2C fiscal position from this -menu: :menuselection:`Configuration --> Fiscal Positions`. -This fiscal position should map the VAT 21% (tax excluded of price) +menu: :menuselection:`Configuration --> Fiscal Positions`. +This fiscal position should map the VAT 21% (tax excluded of price) with a VAT 21% (tax included in price) .. image:: B2B_B2C/price_B2C_B2B03.png @@ -151,8 +151,8 @@ with a VAT 21% (tax included in price) Test by creating a quotation ============================ -Create a quotation from the Sale application, using the -:menuselection:`Sales --> Quotations` menu. You should have the +Create a quotation from the Sale application, using the +:menuselection:`Sales --> Quotations` menu. You should have the following result: 8.26€ + 1.73€ = 9.99€. .. image:: B2B_B2C/price_B2C_B2B04.png diff --git a/content/applications/finance/accounting/taxation/taxes/retention.rst b/content/applications/finance/accounting/taxation/taxes/retention.rst index a1a8dc5ff..aff03866d 100644 --- a/content/applications/finance/accounting/taxation/taxes/retention.rst +++ b/content/applications/finance/accounting/taxation/taxes/retention.rst @@ -40,8 +40,8 @@ Once the tax is defined, you can use it in your products, sales order or invoices. .. tip:: - If the retention is a percentage of a regular tax, create a Tax with a - **Tax Computation** as a **Tax Group** and set the two taxes in this group + If the retention is a percentage of a regular tax, create a Tax with a + **Tax Computation** as a **Tax Group** and set the two taxes in this group (normal tax and retention). Applying retention taxes on invoices @@ -55,9 +55,9 @@ invoice line. :align: center .. note:: - When you see the customer invoice on the screen, you get only a - **Taxes line** summarizing all the taxes (normal taxes & retentions). - But when you print or send the invoice, Odoo does the correct + When you see the customer invoice on the screen, you get only a + **Taxes line** summarizing all the taxes (normal taxes & retentions). + But when you print or send the invoice, Odoo does the correct grouping amongst all the taxes. The printed invoice will show the different amounts in each tax group. diff --git a/content/applications/finance/expenses.rst b/content/applications/finance/expenses.rst index e64b792af..3ec32cca7 100644 --- a/content/applications/finance/expenses.rst +++ b/content/applications/finance/expenses.rst @@ -14,7 +14,7 @@ How to set expense types ======================== The first step to track expenses is to configure the expense types (managed as products in Odoo) -that your company allows, from the *Configuration* menu. +that your company allows, from the *Configuration* menu. When a specific expense is reimbursed at a fixed price, set a cost on the product. Otherwise keep the cost at 0.0 and employees will report the real cost per expense. @@ -37,16 +37,16 @@ Here are some examples: * Cost: 0.0 -Don't forget to set an expense tax on each expense type -(and an account if you use Odoo Accounting). -It's usually a good practice to use a tax that is configured +Don't forget to set an expense tax on each expense type +(and an account if you use Odoo Accounting). +It's usually a good practice to use a tax that is configured with :ref:`Tax Included in Price `. -That way, employees report expenses with +That way, employees report expenses with prices including taxes, which is usually the expected behaviour. -.. tip:: - The *Sales* app allows you to specify units of measure for your - expense types (units, miles, nights, etc.). +.. tip:: + The *Sales* app allows you to specify units of measure for your + expense types (units, miles, nights, etc.). Go to :menuselection:`Sales --> Configuration --> Settings` and check *Some products may be sold/purchased in different units of measure (advanced)*. @@ -57,20 +57,20 @@ How to record expenses Manually -------- -As an employee (Employee in user access rights), you can record +As an employee (Employee in user access rights), you can record expenses from :menuselection:`My Expenses --> Expenses to Submit`. .. image:: expenses/submit_01.png :align: center -1. Select the related product and enter either the total amount - you paid (with Quantity = 1) or the unit price if Quantity is +1. Select the related product and enter either the total amount + you paid (with Quantity = 1) or the unit price if Quantity is countable (e.g. number of hotel nights). 2. Enter the expense date. -3. Choose if you paid the bill on your own (and expect to be reimbursed) +3. Choose if you paid the bill on your own (and expect to be reimbursed) or if the company paid directly (e.g. if you used a company's credit card). -4. Set the bill reference, add some notes if requested and attach a - photo/scan of the receipt from the discussion thread. +4. Set the bill reference, add some notes if requested and attach a + photo/scan of the receipt from the discussion thread. That will help the manager and the accountant validate it. .. image:: expenses/submit_02.png @@ -79,56 +79,56 @@ expenses from :menuselection:`My Expenses --> Expenses to Submit`. In one click from emails ------------------------ -Let your employees record their expenses from a simple email. +Let your employees record their expenses from a simple email. Make a snapshot of the receipt and send it by email, or simply forward a bill! -The only thing to do is setting up an email alias in -:menuselection:`Expenses --> Configuration --> Settings` (e.g. *expenses* @mycompany.odoo.com). -For security purposes, only authenticated employee emails +The only thing to do is setting up an email alias in +:menuselection:`Expenses --> Configuration --> Settings` (e.g. *expenses* @mycompany.odoo.com). +For security purposes, only authenticated employee emails (cfr. *Work Email* in employee detail form) are accepted. .. tip:: - The expense product is set automatically if the mail subject contains + The expense product is set automatically if the mail subject contains the product's internal reference in first position. Type the expense amount in the mail subject to set it on the expense too (e.g. Ref001 Food 100€). How to submit expenses to managers ================================== -When you are ready to submit your expenses to your manager -(e.g. at the end of a business trip, or once a month), -go to the menu :menuselection:`My Expenses --> Expenses to Submit`. Select all expenses +When you are ready to submit your expenses to your manager +(e.g. at the end of a business trip, or once a month), +go to the menu :menuselection:`My Expenses --> Expenses to Submit`. Select all expenses from the list view and click on :menuselection:`Action --> Submit to Manager`. -Save the newly created expense report (i.e. set of expenses), +Save the newly created expense report (i.e. set of expenses), and wait for your manager to approve it. .. image:: expenses/submit_03.png :align: center -You can also submit expenses one by one from the *Submit to Manager* +You can also submit expenses one by one from the *Submit to Manager* button on the form view of an expense. -All your submitted expense reports can be found in +All your submitted expense reports can be found in :menuselection:`Expenses --> My Expenses --> Expense Reports`. How to approve expenses ======================= -HR and team managers get an overview of all expense reports to -validate from the top menu :menuselection:`To Approve --> Expense Reports to Approve`. +HR and team managers get an overview of all expense reports to +validate from the top menu :menuselection:`To Approve --> Expense Reports to Approve`. Such users must have at least *Officers* access rights for *Expenses*. .. image:: expenses/approval_01.png :align: center -They can review expense reports, approve or reject them, as well as providing +They can review expense reports, approve or reject them, as well as providing feedback thanks to the integrated communication tool. .. image:: expenses/approval_02.png :align: center -As a team manager you can easily find the expense reports of your team members. +As a team manager you can easily find the expense reports of your team members. You need to be set as manager in the detail form of those employees. .. image:: expenses/approval_03.png @@ -138,27 +138,27 @@ You need to be set as manager in the detail form of those employees. How to post expenses in accounting ================================== -Once expense reports approved by managers, the accounting department -goes to :menuselection:`Expenses --> Accountant --> Expense Reports To Post` to check -accounts, products and taxes. They can click *Post Journal Entries* -to post related journal entries into your books. +Once expense reports approved by managers, the accounting department +goes to :menuselection:`Expenses --> Accountant --> Expense Reports To Post` to check +accounts, products and taxes. They can click *Post Journal Entries* +to post related journal entries into your books. To do so, the user must have following access rights: * Accounting: Accountant or Adviser * Expenses: Manager .. note:: - To post an expense, a *Home Address* must be set on the employee. - If you get a related blocking message when posting, click the employee, - go to *Personal Information* tab and select/create the contact of your employee - in the address book. + To post an expense, a *Home Address* must be set on the employee. + If you get a related blocking message when posting, click the employee, + go to *Personal Information* tab and select/create the contact of your employee + in the address book. A contact has been automatically created if this person is using Odoo. How to reimburse employees ========================== -You can now see all the expense reports to reimburse in -:menuselection:`Expenses --> Accountant --> Expense Reports To Pay`. +You can now see all the expense reports to reimburse in +:menuselection:`Expenses --> Accountant --> Expense Reports To Pay`. To record the payment or pay by check, click *Register a Payment*. See how you can easily manage the payment process in Odoo: @@ -223,7 +223,7 @@ Submit, validate and post expenses Invoice expenses ---------------- -Now you can invoice the order. It shows up in +Now you can invoice the order. It shows up in :menuselection:`Sales --> Invoicing --> Sales` to Invoice. The expenses have been added automatically in the order lines. Such items show up in blue (i.e. to invoice). @@ -231,4 +231,4 @@ lines. Such items show up in blue (i.e. to invoice). .. image:: expenses/invoicing_04.png :align: center -e (i.e. to invoice). +e (i.e. to invoice). diff --git a/content/applications/finance/payment_providers/mercado_pago.rst b/content/applications/finance/payment_providers/mercado_pago.rst index 3fb286759..157aff410 100644 --- a/content/applications/finance/payment_providers/mercado_pago.rst +++ b/content/applications/finance/payment_providers/mercado_pago.rst @@ -10,7 +10,7 @@ countries, currencies and payment methods in Latin America. Configuration on Mercado Pago Dashboard ======================================= -#. Log into `Mercado Pago Dashboard `_ +#. Log into `Mercado Pago Dashboard `_ and go to your **Application** or *create* a new one. #. Go to :menuselection:`Production Credentials` or :menuselection:`Credentials` if your are in a *Test* environment and copy your **Access Token** @@ -22,7 +22,7 @@ Configuration on Odoo #. :ref:`Navigate to the payment provider Mercado Pago ` and change its state to :guilabel:`Enabled`. -#. In the :guilabel:`Credentials` tab, fill the :guilabel:`Access Token` with the value +#. In the :guilabel:`Credentials` tab, fill the :guilabel:`Access Token` with the value you saved at the step :ref:`payment_providers/mercado_pago/configure_dashboard`. #. Configure the rest of the options to your liking. diff --git a/content/applications/general.rst b/content/applications/general.rst index ffd00b592..ed07014e9 100644 --- a/content/applications/general.rst +++ b/content/applications/general.rst @@ -14,4 +14,3 @@ Miscellaneous general/digest_emails general/in_app_purchase general/developer_mode - diff --git a/content/applications/general/auth/google.rst b/content/applications/general/auth/google.rst index 2bbfdf9e7..414ed0a67 100644 --- a/content/applications/general/auth/google.rst +++ b/content/applications/general/auth/google.rst @@ -70,7 +70,7 @@ Credentials #. Select **Web Application** as the Application type. Now configure the allowed pages on which you will be redirected. - + In order to achieve this, in the **Authorized redirect URIs** field, enter your database's domain immediately followed by ``/auth_oauth/signin``. For example: ``https://mydomain.odoo.com/auth_oauth/signin``, then click on *Create*. @@ -106,7 +106,7 @@ Odoo activation .. note:: You may have to log in again after this step. - + #. Go back to :menuselection:`General Settings --> Integrations`, activate **Google Authentication**, then fill out the *Client ID* with the key from the Google API Dashboard, and *Save*. diff --git a/content/applications/general/developer_mode.rst b/content/applications/general/developer_mode.rst index e603e2803..48024be96 100644 --- a/content/applications/general/developer_mode.rst +++ b/content/applications/general/developer_mode.rst @@ -38,7 +38,7 @@ Activate through the command palette The command palette tool has a command to activate the debug mode: open it with the keyboard shortcut `ctrl+k`, then type `debug`: a command will show up to -activate the debug mode. +activate the debug mode. .. image:: developer_mode/command_palette.png :align: center diff --git a/content/applications/general/digest_emails.rst b/content/applications/general/digest_emails.rst index 7ea9ec6d1..4d19b3d24 100644 --- a/content/applications/general/digest_emails.rst +++ b/content/applications/general/digest_emails.rst @@ -54,7 +54,7 @@ Custom digest emails To do so, click on **Configure Digest Emails** and then **Create**. From there, give your Digest Email a title, specify periodicity, and choose your desired KPIs and -recipients fields as needed. +recipients fields as needed. After you click **Save**, your new custom Digest Email is available as a selection in the **General Settings** dropdown menu. @@ -111,4 +111,4 @@ Computed values reference table | POS Sales | `kpi_pos_total_value` | +-----------------------+-------------------------------------------+ | New Employees | `kpi_hr_recruitment_new_colleagues_value` | -+-----------------------+-------------------------------------------+ ++-----------------------+-------------------------------------------+ diff --git a/content/applications/general/email_communication/email_domain.rst b/content/applications/general/email_communication/email_domain.rst index e31d936e1..b00d4a651 100644 --- a/content/applications/general/email_communication/email_domain.rst +++ b/content/applications/general/email_communication/email_domain.rst @@ -20,7 +20,7 @@ If your database is hosted on our cloud (Odoo Online or Odoo.sh), it is not nece outgoing email server to send emails from your custom domain. You can enjoy this feature by using the default Odoo email server. -.. important:: +.. important:: The Odoo server is subject to a daily email limit to prevent abuse. The default limit is 200 emails sent per day for databases with an Enterprise subscription. This limit can be increased under certain conditions. See our :doc:`FAQ ` or contact support for more @@ -38,19 +38,19 @@ Be SPF compliant ================ The Sender Policy Framework (SPF) protocol allows the owner of a domain name to specify which -servers are allowed to send email from that domain. When a server receives an incoming email, -it checks whether the IP address of the sending server is on the list of allowed IPs according +servers are allowed to send email from that domain. When a server receives an incoming email, +it checks whether the IP address of the sending server is on the list of allowed IPs according to the SPF record of the sender. -.. note:: +.. note:: The SPF verification is performed on the domain mentioned in the Return-Path field of the email. In the case of an email sent by Odoo, this domain corresponds to the value of the `mail.catchall.domain` key in the database system parameters. See the :ref:`documentation on incoming emails `. -The SPF policy of a domain is set using a TXT record. How to create or modify a TXT record depends -on the provider hosting the DNS zone of your domain name. In order for the verification to work +The SPF policy of a domain is set using a TXT record. How to create or modify a TXT record depends +on the provider hosting the DNS zone of your domain name. In order for the verification to work properly, each domain can only have one SPF record. If your domain name does not yet have an SPF record, the content of the record to create is as @@ -66,7 +66,7 @@ new one). If your TXT record is `v=spf1 include:_spf.google.com ~all`, you need to edit it to add `include:_spf.odoo.com`: `v=spf1 include:_spf.odoo.com include:_spf.google.com ~all` -You can check if your SPF record is valid with a free tool like +You can check if your SPF record is valid with a free tool like `MXToolbox SPF `_. .. _email_communication/DKIM_compliant: @@ -86,13 +86,13 @@ To enable DKIM, you must add a CNAME record to the DNS zone of your domain name: ``odoo._domainkey IN CNAME odoo._domainkey.odoo.com.`` .. tip:: - If your domain name is `mycompany.com`, you need to create a subdomain + If your domain name is `mycompany.com`, you need to create a subdomain `odoo._domainkey.mycompany.com` whose canonical name is `odoo._domainkey.odoo.com.`. How to create or modify a CNAME record depends on the provider hosting the DNS zone of your domain name. The most common providers are list below. -You can check if your DKIM record is valid with a free tool like +You can check if your DKIM record is valid with a free tool like `DKIM Core `_. If a selector is asked, enter `odoo`. Check your DMARC policy @@ -110,7 +110,7 @@ There are three DMARC policies: ``p=quarantine`` and ``p=reject`` instruct the server that receives an email to quarantine that email or ignore it if the SPF and/or DKIM check fails. -If your domain name uses DMARC and has defined one of these policies, it is therefore imperative +If your domain name uses DMARC and has defined one of these policies, it is therefore imperative to be SPF compliant or to enable DKIM. .. danger:: @@ -118,7 +118,7 @@ to be SPF compliant or to enable DKIM. strongly advise against using an *@yahoo.com* or *@aol.com* address for your users. These emails will never reach their recipient. -``p=none`` is used for the domain owner to receive reports about entities using their domain. It +``p=none`` is used for the domain owner to receive reports about entities using their domain. It should not impact the deliverability if the DMARC check fails. You can check the DMARC record of a domain name with a tool like @@ -127,12 +127,12 @@ You can check the DMARC record of a domain name with a tool like If one of your partners, customer or vendor, uses DMARC and has defined one of these policies, the Odoo server cannot relay emails from this partner to your users. -You need to :ref:`handle user notifications in Odoo `, or replace the +You need to :ref:`handle user notifications in Odoo `, or replace the email address of the partner with a default email address. .. _email_communication/SPFDKIM_common_providers: -SPF, DKIM & DMARC documentation of common providers +SPF, DKIM & DMARC documentation of common providers =================================================== - `OVH DNS `_ @@ -145,8 +145,8 @@ SPF, DKIM & DMARC documentation of common providers - `Google Domains `_ - `Azure DNS `_ -To fully test your configuration, the tool `Mail-Tester `_ will give -you a full overview of the content and configuration you have in one email sent! Mail-Tester can +To fully test your configuration, the tool `Mail-Tester `_ will give +you a full overview of the content and configuration you have in one email sent! Mail-Tester can also be used for other lesser known providers. Use a default email address @@ -156,7 +156,7 @@ To force the email address from which emails are sent, you need to create the fo the System Parameters of the database: - If ``mail.default.from`` is set, and contains a full email address, all outgoing emails are sent - from the given address. This is a requirement to use `Outlook with Odoo + from the given address. This is a requirement to use `Outlook with Odoo `_. You access the **System Parameters** in :ref:`developer mode ` in the :menuselection:`Settings --> diff --git a/content/applications/general/email_communication/email_template.rst b/content/applications/general/email_communication/email_template.rst index 3c858237c..e649e5f37 100644 --- a/content/applications/general/email_communication/email_template.rst +++ b/content/applications/general/email_communication/email_template.rst @@ -10,15 +10,15 @@ improving their overall experience with the company. .. note:: The email templates use QWeb. The composer allows you to edit emails in their final rendering, - making customizations more robust as you don’t have to edit code. + making customizations more robust as you don’t have to edit code. Defining a default reply to on your mail template ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Although the field *reply to* is available within the mail templates, **this field is only used -for mass mailing** mode (this means when sending templates on what we call bulk emailing). You -can send emails in bulk in almost every app that has a list view. Select the records you want -and click on the action button. If you have an option to send an email, you will see a mail +Although the field *reply to* is available within the mail templates, **this field is only used +for mass mailing** mode (this means when sending templates on what we call bulk emailing). You +can send emails in bulk in almost every app that has a list view. Select the records you want +and click on the action button. If you have an option to send an email, you will see a mail composer with possible values to define: .. image:: email_template/composer-mass-mailing-quotations.png @@ -31,12 +31,12 @@ You can also define them by default on the template: :align: center :alt: Reply-to field on template. -Because of this, setting a value in this field is useless as the value defined will be totally -ignored. The default *reply-to* value is the default catchall email address to ensure a +Because of this, setting a value in this field is useless as the value defined will be totally +ignored. The default *reply-to* value is the default catchall email address to ensure a communication between your customer and your Odoo database. For more information about the way the catchall works, please check :ref:`how to manage inbound messages `. -Transactional emails and corresponding URL for each company +Transactional emails and corresponding URL for each company ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When using Odoo, multiple events trigger the sending of automated emails. These emails are known @@ -45,36 +45,36 @@ as transactional emails and sometimes contain links pointing to your Odoo databa By default, links generated by the database use the dynamic web.base.url key defined in the system parameters. More information about this :ref:`parameter `. -If the website application isn't installed, the web.base.url key will always be the default +If the website application isn't installed, the web.base.url key will always be the default parameter used to generate all the links. -It’s important to know that this key can only have a single value, meaning that in a -multi-website/company database environment, even if you have a specific domain name for each +It’s important to know that this key can only have a single value, meaning that in a +multi-website/company database environment, even if you have a specific domain name for each website, the links generated to share a document or within a transactional email might remain the same, whatever the website/company related to the sending of the email/document. -This is not always the case as some Odoo applications have a link established in the database with -the website application, meaning that in this case, if a specific domain is defined for the +This is not always the case as some Odoo applications have a link established in the database with +the website application, meaning that in this case, if a specific domain is defined for the websites, the URL generated in the email template will use the domain defined on the corresponding website of the company. .. caution:: - A document shared using the documents application will always use the web.base.url key, as the - document shared isn't associated with any particular website. Meaning that the URL will always be - the same (the web.base.url key value), whatever the company it's shared from, this is a known + A document shared using the documents application will always use the web.base.url key, as the + document shared isn't associated with any particular website. Meaning that the URL will always be + the same (the web.base.url key value), whatever the company it's shared from, this is a known limitation! -On the other hand, sales orders made by a customer on one of your Odoo e-commerce websites have a -link established with the website from which the order was made. As a result, the e-mail sent for +On the other hand, sales orders made by a customer on one of your Odoo e-commerce websites have a +link established with the website from which the order was made. As a result, the e-mail sent for the sales orders uses the domain name defined for the corresponding website to generate the links. -For more information about how to configure your domains, we invite you to check :doc:`our domain name +For more information about how to configure your domains, we invite you to check :doc:`our domain name documentation `. Updating translations within email templates ******************************************** -Email templates are automatically translated. Changing the translations shouldn’t be necessary. +Email templates are automatically translated. Changing the translations shouldn’t be necessary. However, if for a specific reason you’d like to change some of the translations, this can be done. Like any modification in the code, keep in mind that modifications that aren’t done correctly (for @@ -89,7 +89,7 @@ In order to edit your translations, follow these steps from the template. :align: left :alt: Edit the language of a template -#. A pop-up window with the different languages installed on the database will be displayed. From +#. A pop-up window with the different languages installed on the database will be displayed. From here, editing the translations will be possible. Don't forget to hit the save button to preserve your changes. diff --git a/content/applications/general/email_communication/faq.rst b/content/applications/general/email_communication/faq.rst index a1a572295..2f84aff58 100644 --- a/content/applications/general/email_communication/faq.rst +++ b/content/applications/general/email_communication/faq.rst @@ -1,10 +1,10 @@ === -FAQ +FAQ === This document contains an explanation of the most recurring mailing concerns. -We will start by addressing issues of outgoing emails (ex: my client has not received my email), +We will start by addressing issues of outgoing emails (ex: my client has not received my email), and then, of incoming emails (ex: I do not receive responses from my customers in the database). Outgoing emails @@ -27,15 +27,15 @@ Common error messages .. _email_communication/daily_limit_mail: -You reached your daily limit: +You reached your daily limit: ***************************** .. image:: faq/email-limit.png :align: center :alt: Warning in Odoo upon email limit reached -Each email service provider has its own email sending limits. The limits may be daily, hourly, -and sometimes even per minute. This is the same for Odoo, we have to limit our customers to prevent +Each email service provider has its own email sending limits. The limits may be daily, hourly, +and sometimes even per minute. This is the same for Odoo, we have to limit our customers to prevent our e-mail servers from being blacklisted. Here are the default limits for new databases: @@ -48,18 +48,18 @@ Here are the default limits for new databases: In case you hit the limit, you can: -- Ask our support team to increase your daily limit. We will analyze the situation of your database +- Ask our support team to increase your daily limit. We will analyze the situation of your database depending on (non-exhaustive list): - - How many users in your database, + - How many users in your database, - Which apps are installed, - - Your bounce rate: the percentage of email addresses that did not receive your emails because + - Your bounce rate: the percentage of email addresses that did not receive your emails because it was returned by a mail server on its way to the final recipient. You can contact the `support `_. -- Use your own outgoing email server to be independent of Odoo’s mail limit (please refer +- Use your own outgoing email server to be independent of Odoo’s mail limit (please refer to :doc:`the corresponding documentation `), -- Wait until 11pm UTC for the reset and click on the retry button: The :ref:`Developer mode ` +- Wait until 11pm UTC for the reset and click on the retry button: The :ref:`Developer mode ` must be activated. Then, go to :menuselection:`Settings --> Technical --> Emails` .. image:: faq/email-retry-technical.png @@ -70,54 +70,54 @@ In case you hit the limit, you can: The daily limit is global to your database and can rise quickly! By default an internal message, a notification, a note, etc. counts as an email in your daily limit if it notifies someone. -You can mitigate this by receiving your :ref:`notifications in Odoo ` -instead of by emails. +You can mitigate this by receiving your :ref:`notifications in Odoo ` +instead of by emails. SMTP Error ********** -You can find out why an email wasn't transmitted successfully by reviewing the Simple Mail -Transport Protocol (SMTP) error messages. SMTP is a protocol to describe the email structure -and transmit it over the Internet, and the error messages generated by email services are helpful +You can find out why an email wasn't transmitted successfully by reviewing the Simple Mail +Transport Protocol (SMTP) error messages. SMTP is a protocol to describe the email structure +and transmit it over the Internet, and the error messages generated by email services are helpful tools to diagnose and troubleshoot email problems. No Error ******** -Odoo is not always capable of providing information for the reason it failed. The different -providers implement a personalized policy of the bounce emails and it is not always possible +Odoo is not always capable of providing information for the reason it failed. The different +providers implement a personalized policy of the bounce emails and it is not always possible for Odoo to interpret it correctly. -If you have this problem on a recurring basis with the same client or the same domain, please +If you have this problem on a recurring basis with the same client or the same domain, please do not hesitate to contact `Odoo Support `_ for help in finding a reason. -Note: in such case, one of the most common reasons is related to :ref:`SPF ` +Note: in such case, one of the most common reasons is related to :ref:`SPF ` and/or :ref:`DKIM ` configuration. Why is my email sent late? ************************** -It may happen that you schedule an email campaign but it is not sent on time. We know that -we use a delayed job to send emails that we consider as not urgent (Newsletters concept -such as mass mailing, marketing automation, events). The system utility **cron** can be used -to schedule programs to run automatically at predetermined intervals. We use that policy in order -to avoid cluttering the mail servers and prioritize the communication. +It may happen that you schedule an email campaign but it is not sent on time. We know that +we use a delayed job to send emails that we consider as not urgent (Newsletters concept +such as mass mailing, marketing automation, events). The system utility **cron** can be used +to schedule programs to run automatically at predetermined intervals. We use that policy in order +to avoid cluttering the mail servers and prioritize the communication. -The emails considered urgent (communication from one person to another one such as -Sales Orders, Invoices, Purchase Orders, etc.) are sent directly. +The emails considered urgent (communication from one person to another one such as +Sales Orders, Invoices, Purchase Orders, etc.) are sent directly. .. image:: faq/email-scheduled-later.png :align: center :alt: Email scheduled to be sent later. -By default, the Mass Mailing cron runs every 60 minutes. So, you should wait maximum an hour +By default, the Mass Mailing cron runs every 60 minutes. So, you should wait maximum an hour before the campaign is actually sent. Incoming emails =============== -When you have an issue with incoming emails, there might not be an indication per se in Odoo. -This is the client who tries to contact a database who will get a bounce (most of the +When you have an issue with incoming emails, there might not be an indication per se in Odoo. +This is the client who tries to contact a database who will get a bounce (most of the time 550: mailbox unavailable). Emails are not received @@ -127,22 +127,22 @@ Depending on the platform you are using: - The **Odoo.sh** users can find their live logs on the folder :file:`~/logs/`. -- The folder :file:`~/logs/` (preferably accessed by the command line) of an Odoo.sh contains - a list of files containing the logs of the database. The log files are created everyday - at 5:00 AM UTC. The two last days are not compressed, while the older ones are, in order - to gain space. The naming of the files for Today and Yesterday are :file:`odoo.log` and +- The folder :file:`~/logs/` (preferably accessed by the command line) of an Odoo.sh contains + a list of files containing the logs of the database. The log files are created everyday + at 5:00 AM UTC. The two last days are not compressed, while the older ones are, in order + to gain space. The naming of the files for Today and Yesterday are :file:`odoo.log` and :file:`odoo.log.1`. For the following, they are named with their dates and compressed. - See the Odoo.sh documentation about :ref:`logs `. Use the command ``grep`` and + See the Odoo.sh documentation about :ref:`logs `. Use the command ``grep`` and ``zgrep`` (for the compressed ones) to search through the files. - **Odoo Online** users won’t have access to their logs. However you can still contact - `Odoo Support `_ , if you have a recurring issue + `Odoo Support `_ , if you have a recurring issue with the same client or domain. Get help from support --------------------- -In order to get helped efficiently, please provide as much information as possible. Here is a list +In order to get helped efficiently, please provide as much information as possible. Here is a list of what can be helpful: - The **EML** of the email, stating for *Electronic Mail*, is the file format containing all the diff --git a/content/applications/general/export_import_data/database_import_test.sql b/content/applications/general/export_import_data/database_import_test.sql index 1319cce39..4890c0682 100644 --- a/content/applications/general/export_import_data/database_import_test.sql +++ b/content/applications/general/export_import_data/database_import_test.sql @@ -16,7 +16,7 @@ SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: companies; Type: TABLE; Schema: public; Owner: fp; Tablespace: +-- Name: companies; Type: TABLE; Schema: public; Owner: fp; Tablespace: -- CREATE TABLE companies ( @@ -56,7 +56,7 @@ SELECT pg_catalog.setval('companies_id_seq', 3, true); -- --- Name: persons; Type: TABLE; Schema: public; Owner: fp; Tablespace: +-- Name: persons; Type: TABLE; Schema: public; Owner: fp; Tablespace: -- CREATE TABLE persons ( @@ -134,7 +134,7 @@ COPY persons (id, company_id, person_name) FROM stdin; -- --- Name: companies_pkey; Type: CONSTRAINT; Schema: public; Owner: fp; Tablespace: +-- Name: companies_pkey; Type: CONSTRAINT; Schema: public; Owner: fp; Tablespace: -- ALTER TABLE ONLY companies diff --git a/content/applications/general/in_app_purchase.rst b/content/applications/general/in_app_purchase.rst index 4bb478452..8249e150d 100644 --- a/content/applications/general/in_app_purchase.rst +++ b/content/applications/general/in_app_purchase.rst @@ -29,7 +29,7 @@ Settings --> IAP Account`. .. image:: in_app_purchase/image2.png :align: center - + IAP Portal ========== @@ -62,7 +62,7 @@ Different services are available depending on the hosting type of your Database: - *Odoo.sh and Odoo Enterprise (on-premise)*: both the services provided by Odoo and by third-party apps can be used. -Offering my own services +Offering my own services ======================== I am more than welcome to offer my own IAP services through Odoo Apps! It is the perfect opportunity diff --git a/content/applications/general/voip/asterisk.rst b/content/applications/general/voip/asterisk.rst index 218287271..7ecbb1f9b 100644 --- a/content/applications/general/voip/asterisk.rst +++ b/content/applications/general/voip/asterisk.rst @@ -26,7 +26,7 @@ In order to install libsrtp, follow the instructions below: .. code-block:: console cd /usr/local/src/ - wget http://srtp.sourceforge.net/srtp-1.4.2.tgz + wget http://srtp.sourceforge.net/srtp-1.4.2.tgz tar zxvf srtp-1.4.2.tgz cd /usr/local/src/srtp ./configure CFLAGS=-fPIC --prefix=/usr/local/lib @@ -67,7 +67,7 @@ You also need to install PJSIP, you can download the source `here /usr/lib/libpjsua.so @@ -90,7 +90,7 @@ Asterisk - Extract Asterisk: .. code-block:: console - + tar zxvf asterisk* - Enter the Asterisk directory: @@ -99,7 +99,7 @@ Asterisk cd ./asterisk* -- Run the Asterisk configure script: +- Run the Asterisk configure script: .. code-block:: console @@ -207,14 +207,14 @@ In Odoo, the configuration should be done in the user's preferences. .. image:: asterisk/voip_config01.png :align: center -- The SIP Login/Browser's Extension is the number you configured previously in the sip.conf file (in our example: 1060). +- The SIP Login/Browser's Extension is the number you configured previously in the sip.conf file (in our example: 1060). -- The SIP Password is the secret you chose in the sip.conf file. +- The SIP Password is the secret you chose in the sip.conf file. - The extension of your office's phone is not a required field but it is used if you want to transfer your call from Odoo to an external phone also configured in the sip.conf file. -The configuration should also be done in the General Settings under the "Integrations" section. +The configuration should also be done in the General Settings under the "Integrations" section. .. image:: onsip/onsip02.png :align: center diff --git a/content/applications/inventory_and_mrp/inventory/management/delivery/dropshipping.rst b/content/applications/inventory_and_mrp/inventory/management/delivery/dropshipping.rst index 463285d88..abc57695e 100644 --- a/content/applications/inventory_and_mrp/inventory/management/delivery/dropshipping.rst +++ b/content/applications/inventory_and_mrp/inventory/management/delivery/dropshipping.rst @@ -18,12 +18,12 @@ warehouse. Points to be Considered while Implementing Drop-Shipping ======================================================== -- Use drop-shipping only for the products you can't or don't want to keep in stock. +- Use drop-shipping only for the products you can't or don't want to keep in stock. One reason is that you'll always make smaller margins on items that are drop-shipped, so you should keep it only for items that take up a lot of space in your warehouse. -- Drop-shipping is best for niche products. +- Drop-shipping is best for niche products. Chances are that products that are in high demand are being offered by large suppliers at a fraction of the price you'll be able to charge, so using a more costly shipping method won't be financially rewarding. But if @@ -32,11 +32,11 @@ Points to be Considered while Implementing Drop-Shipping - To protect your customers from bad experiences. Test drop-shipping companies for yourself beforehand and list the best ones. -- Make sure time is not against you. +- Make sure time is not against you. Drop-shipping should take a reasonable amount of time and surely not more than it would have taken you to handle it all by yourself. It's also nice to be able to provide your customers with a tracking number. -- Items have to be available from your supplier. +- Items have to be available from your supplier. It's good to know if the product you're selling is available upstream. If you don't have that information, inform your customers that you don't hold diff --git a/content/applications/inventory_and_mrp/inventory/management/delivery/three_steps.rst b/content/applications/inventory_and_mrp/inventory/management/delivery/three_steps.rst index d99778abe..1b22c5694 100644 --- a/content/applications/inventory_and_mrp/inventory/management/delivery/three_steps.rst +++ b/content/applications/inventory_and_mrp/inventory/management/delivery/three_steps.rst @@ -38,7 +38,7 @@ goods in output and then deliver (3 steps)* for *Outgoing Shipments*. :align: center Activating this option will lead to the creation of two new locations, -*Output* and *Packing Zone*. If you want to rename it go to :menuselection:`Inventory --> +*Output* and *Packing Zone*. If you want to rename it go to :menuselection:`Inventory --> Configuration --> Locations`, *Select* the one you want to rename and update its name. Create a Sales Order diff --git a/content/applications/inventory_and_mrp/inventory/management/delivery/two_steps.rst b/content/applications/inventory_and_mrp/inventory/management/delivery/two_steps.rst index b7f3b3850..d59cf5325 100644 --- a/content/applications/inventory_and_mrp/inventory/management/delivery/two_steps.rst +++ b/content/applications/inventory_and_mrp/inventory/management/delivery/two_steps.rst @@ -19,7 +19,7 @@ provide a mechanism to chain different actions together. In this case, we will chain the picking step to the shipping step. To allow *multi-step routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and -activate the option. Note that activating *Multi-Step Routes* will also +activate the option. Note that activating *Multi-Step Routes* will also activate *Storage Locations*. .. image:: two_steps/two_steps_01.png @@ -28,7 +28,7 @@ activate *Storage Locations*. Warehouse configuration ======================= -Once *Multi-Step Routes* has been activated, you can go to :menuselection:`Inventory --> +Once *Multi-Step Routes* has been activated, you can go to :menuselection:`Inventory --> Configuration --> Warehouse` and enter the warehouse which will use delivery in 2 steps. You can then select the option *Send goods in output and then deliver (2 steps)* for Outgoing Shipments. diff --git a/content/applications/inventory_and_mrp/inventory/management/incoming/one_step.rst b/content/applications/inventory_and_mrp/inventory/management/incoming/one_step.rst index 6bc1531b5..37f2f24f7 100644 --- a/content/applications/inventory_and_mrp/inventory/management/incoming/one_step.rst +++ b/content/applications/inventory_and_mrp/inventory/management/incoming/one_step.rst @@ -43,10 +43,10 @@ on the dashboard, you can click the *1 TO PROCESS* button under the Now, enter the picking that you want to process. You will be able to click on *Validate* to complete the move directly as products coming -from suppliers are considered as being always available. +from suppliers are considered as being always available. .. note:: - If you have :guilabel:`Storage Locations` activated, you can click the hamburger menu next to + If you have :guilabel:`Storage Locations` activated, you can click the hamburger menu next to the :guilabel:`Done quantity` to specify the location(s) where you are storing the received product(s). diff --git a/content/applications/inventory_and_mrp/inventory/management/incoming/three_steps.rst b/content/applications/inventory_and_mrp/inventory/management/incoming/three_steps.rst index c8a056a9b..8866bd080 100644 --- a/content/applications/inventory_and_mrp/inventory/management/incoming/three_steps.rst +++ b/content/applications/inventory_and_mrp/inventory/management/incoming/three_steps.rst @@ -7,20 +7,20 @@ chain, it only makes sense that we assess the quality of the products received f To do so, we will add a quality control step. Odoo uses routes to define how to handle the different receipt steps. -Configuration of those routes is done at the warehouse level. By default, the reception is a +Configuration of those routes is done at the warehouse level. By default, the reception is a one-step process, but it can also be configured to have two-steps or three-steps processes. -The three-steps flow works as follows: you receive the goods in your receiving area, then transfer -them into a quality area for quality control (QC). When the quality check is completed, the goods +The three-steps flow works as follows: you receive the goods in your receiving area, then transfer +them into a quality area for quality control (QC). When the quality check is completed, the goods that match the QC requirements are moved to stock Activate Multi-Step Routes ========================== -The first step is to allow the use of *Multi-Step Routes*. Routes provide a mechanism to chain different +The first step is to allow the use of *Multi-Step Routes*. Routes provide a mechanism to chain different actions together. In this case, we will chain the picking step to the shipping step. -To enable *Multi-Step Routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and +To enable *Multi-Step Routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and activate the option. .. image:: three_steps/three_steps_01.png @@ -34,22 +34,22 @@ activate the option. Configure warehouse for receipt in 3-steps ========================================== -Once *Multi-Step Routes* has been activated, go to :menuselection:`Inventory --> Configuration --> -Warehouse` and enter the warehouse which should work with the 3-steps reception. Then, select +Once *Multi-Step Routes* has been activated, go to :menuselection:`Inventory --> Configuration --> +Warehouse` and enter the warehouse which should work with the 3-steps reception. Then, select *Receive goods in input, then quality and then stock (3 steps)* for *Incoming Shipments*. .. image:: three_steps/three_steps_02.png :align: center :alt: View of the incoming shipment strategy to choose to receive goods in three steps -Activating this option leads to the creation of two new locations: *Input* and *Quality Control*. +Activating this option leads to the creation of two new locations: *Input* and *Quality Control*. To rename them, go to :menuselection:`Inventory --> Configuration --> Locations` and select the one you want to rename. Create a Purchase Order ======================= -To start the 3-steps reception process, create a *Request for Quotation* from the *Purchase* app, +To start the 3-steps reception process, create a *Request for Quotation* from the *Purchase* app, add some storable products to it and confirm. Then, three pickings are created with your *Purchase Order* as the source document: @@ -68,25 +68,25 @@ Order* as the source document: Process the receipt, quality control and entry in stock ======================================================= -As the receipt operation is the first one to be processed, it has a *Ready* status while the others +As the receipt operation is the first one to be processed, it has a *Ready* status while the others are *Waiting Another Operation*. -To access the receipt operation, click on the button from the *Purchase Order* or go back to the +To access the receipt operation, click on the button from the *Purchase Order* or go back to the *Inventory* app dashboard and click on *Receipts*. .. image:: three_steps/three_steps_04.png :align: center :alt: View of the button to click to see the receipts that need to be processed -In the receipt order, products are always considered available because they come from the supplier. +In the receipt order, products are always considered available because they come from the supplier. Then, the receipt can be validated. .. image:: three_steps/three_steps_05.png :align: center :alt: View of the move (internal transfer) from the reception area to the warehouse input area -Once the receipt has been validated, the transfer to quality becomes *Ready*. And, because the documents -are chained to each other, products previously received are automatically reserved on the +Once the receipt has been validated, the transfer to quality becomes *Ready*. And, because the documents +are chained to each other, products previously received are automatically reserved on the transfer. Then, the transfer can be directly validated. .. image:: three_steps/three_steps_06.png @@ -97,7 +97,7 @@ transfer. Then, the transfer can be directly validated. :align: center :alt: View of the move (internal transfer) from the input area to the quality control area -Now, the transfer that enters the products to stock is *Ready*. Here, it is again ready to be +Now, the transfer that enters the products to stock is *Ready*. Here, it is again ready to be validated in order to transfer the products to your stock location. .. image:: three_steps/three_steps_08.png diff --git a/content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst b/content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst index 35a58260a..371f2b7cd 100644 --- a/content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst +++ b/content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst @@ -40,7 +40,7 @@ After that, the different transfers that needed to be included in the batch tran to the batch transfer To see the products to pick for the different transfers, click on -*Select*. If *Multi-locations* has been activated, the document also shows the locations they have +*Select*. If *Multi-locations* has been activated, the document also shows the locations they have been reserved from. .. image:: batch_transfers/batch_transfers_05.png @@ -77,12 +77,12 @@ too. :align: center :alt: View of an in progress batch transfer -In case all the products cannot be picked, you can create backorders for each individual transfer +In case all the products cannot be picked, you can create backorders for each individual transfer which couldn’t be completely processed. .. image:: batch_transfers/batch_transfers_09.png :align: center - :alt: How to handle batch transfers with unavailable products. Creation of a backorder inside + :alt: How to handle batch transfers with unavailable products. Creation of a backorder inside of a batch transfer .. image:: batch_transfers/batch_transfers_10.png diff --git a/content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst b/content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst index 26e816e16..15dff5805 100644 --- a/content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst +++ b/content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst @@ -25,7 +25,7 @@ options available. Each of them is explained in detail below. .. rst-class:: alternatives doc-aside -Standard Price +Standard Price .. rst-class:: values-table .. list-table:: @@ -110,7 +110,7 @@ Average Price - +2*€6 - €36 - In **AVCO (Average Cost)**, each product has the same value and this + In **AVCO (Average Cost)**, each product has the same value and this value is the average purchase cost of the product. With this costing method, the cost of the product is recomputed as each receipt. @@ -157,14 +157,14 @@ FIFO - €44 In **FIFO (First In First Out)**, the products are valued at their - purchase cost. When a product leaves the stock, that’s the “First in, + purchase cost. When a product leaves the stock, that’s the “First in, first out” rule that applies. - - Pay attention, that this is a financial FIFO. The first value “in” + + Pay attention, that this is a financial FIFO. The first value “in” is the first value “out”, no matter the storage location, warehouse or serial number. - FIFO is advised if you manage all your workflows into Odoo (Sales, + FIFO is advised if you manage all your workflows into Odoo (Sales, Purchases, Inventory). It suits any kind of users. Inventory Valuation: Manual or Automated @@ -179,7 +179,7 @@ your accounting mode: it can be continental or anglo-saxon. In continental accounting, the cost of a good is taken into account as soon as the product is received in stock. In anglo-saxon accounting, the cost of a good is only recorded as an expense when this good is invoiced to a -final customer. In the tables below, you can easily compare those two +final customer. In the tables below, you can easily compare those two accounting modes. Usually, based on your country, the correct accounting mode will be @@ -195,8 +195,8 @@ on your accounting books. Periodically, you create a manual journal entry representing the value of what you have in stock. To know that value, go in :menuselection:`Inventory --> Reporting --> Inventory Valuation`. -This is the default configuration in Odoo and it works -out-of-the-box. Check following operations and find out how +This is the default configuration in Odoo and it works +out-of-the-box. Check following operations and find out how Odoo is managing the accounting postings. Continental Accounting @@ -248,11 +248,11 @@ Manufacturing Orders
-At the end of the month/year, your company does a physical inventory +At the end of the month/year, your company does a physical inventory or just relies on the inventory in Odoo to value the stock into your books. -Create a journal entry to move the stock variation value from your -Profit&Loss section to your assets. +Create a journal entry to move the stock variation value from your +Profit&Loss section to your assets. .. h:div:: doc-aside @@ -261,13 +261,13 @@ Profit&Loss section to your assets. ===================================== ===== ====== \ Debit Credit ===================================== ===== ====== - Assets: Inventory X - Expenses: Inventory Variations X + Assets: Inventory X + Expenses: Inventory Variations X ===================================== ===== ====== If the stock value decreased, the **Inventory** account is credited and the **Inventory Variations** debited. - + .. raw:: html
@@ -289,7 +289,7 @@ Vendor Bill ============================= ===== ====== Configuration: - * Purchased Goods: defined on the product or on the internal category of related product + * Purchased Goods: defined on the product or on the internal category of related product (Expense Account field) * Deferred Tax Assets: defined on the tax used on the purchase order line * Accounts Payable: defined on the vendor related to the bill @@ -307,7 +307,7 @@ Customer Invoice ===================================== ===== ====== Configuration: - * Revenues: defined on the product or on the internal category of related + * Revenues: defined on the product or on the internal category of related product (Income Account field) * Deferred Tax Liabilities: defined on the tax used on the invoice line * Accounts Receivable: defined on the customer (Receivable Account) @@ -322,11 +322,11 @@ Manufacturing Orders .. raw:: html
- -At the end of the month/year, your company does a physical inventory + +At the end of the month/year, your company does a physical inventory or just relies on the inventory in Odoo to value the stock into your books. -Then you need to break down the purchase balance into both the inventory and +Then you need to break down the purchase balance into both the inventory and the cost of goods sold using the following formula: Cost of goods sold (COGS) = Starting inventory value + Purchases – Closing inventory value @@ -340,10 +340,10 @@ To update the stock valuation in your books, record such an entry: ===================================== ===== ====== \ Debit Credit ===================================== ===== ====== - Assets: Inventory (closing value) X + Assets: Inventory (closing value) X Expenses: Cost of Good Sold X Expenses: Purchased Goods X - Assets: Inventory (starting value) X + Assets: Inventory (starting value) X ===================================== ===== ====== Automated Inventory Valuation @@ -370,19 +370,19 @@ Continental Accounting
.. h:div:: doc-aside - + **Configuration:** - Accounts Receivable/Payable: defined on the partner (Accounting tab) - Deferred Tax Assets/Liabilities: defined on the tax used on the invoice line - - Revenues/Expenses: defined by default on product's internal category; can be + - Revenues/Expenses: defined by default on product's internal category; can be also set in product form (Accounting tab) as a replacement value. - - Inventory Variations: to set as Stock Input/Output Account in product's internal + - Inventory Variations: to set as Stock Input/Output Account in product's internal category - + - Inventory: to set as Stock Valuation Account in product's internal category Anglo-Saxon Accounting @@ -402,7 +402,7 @@ Anglo-Saxon Accounting - Accounts Receivable/Payable: defined on the partner (Accounting tab) - - Deferred Tax Assets/Liabilities: defined on the tax used on the + - Deferred Tax Assets/Liabilities: defined on the tax used on the invoice line - Revenues: defined on the product category as a default, or specifically @@ -412,13 +412,13 @@ Anglo-Saxon Accounting Defined on the product category as a default value, or specifically on the product form. - - Goods Received Not Purchased: to set as Stock Input Account in product's + - Goods Received Not Purchased: to set as Stock Input Account in product's internal category - - Goods Issued Not Invoiced: to set as Stock Output Account in product's + - Goods Issued Not Invoiced: to set as Stock Output Account in product's internal category - Inventory: to set as Stock Valuation Account in product's internal category - - Price Difference: to set in product's internal category or in product + - Price Difference: to set in product's internal category or in product form as a specific replacement value diff --git a/content/applications/inventory_and_mrp/inventory/routes/concepts/stock_warehouses.rst b/content/applications/inventory_and_mrp/inventory/routes/concepts/stock_warehouses.rst index a34f78224..16ce69452 100644 --- a/content/applications/inventory_and_mrp/inventory/routes/concepts/stock_warehouses.rst +++ b/content/applications/inventory_and_mrp/inventory/routes/concepts/stock_warehouses.rst @@ -23,7 +23,7 @@ Now, you have to make sure that the main stock locations of warehouse A and ware Sell a product from the virtual warehouse ========================================== -Let’s say you have two products, one stored in warehouse A and one stored in warehouse B. Now, you can create a new quotation for one of each product. Go to other information and choose Warehouse A+B in the shipping information. +Let’s say you have two products, one stored in warehouse A and one stored in warehouse B. Now, you can create a new quotation for one of each product. Go to other information and choose Warehouse A+B in the shipping information. .. image:: stock_warehouses/ware3.png :align: center diff --git a/content/applications/inventory_and_mrp/inventory/shipping/operation/cancel.rst b/content/applications/inventory_and_mrp/inventory/shipping/operation/cancel.rst index e70d17492..981a3d002 100644 --- a/content/applications/inventory_and_mrp/inventory/shipping/operation/cancel.rst +++ b/content/applications/inventory_and_mrp/inventory/shipping/operation/cancel.rst @@ -14,7 +14,7 @@ the destination. You can easily cancel the request made to the carrier system. -How to cancel a shipping request? +How to cancel a shipping request? ================================= - If the delivery order is not **Validated**, then the request hasn't been @@ -36,7 +36,7 @@ You will now see that the shipment has been cancelled. You can now change the carrier if you wish. -How to send a shipping request after cancelling one? +How to send a shipping request after cancelling one? ==================================================== After cancelling the shipping request, you can change the carrier you diff --git a/content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst b/content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst index ab03ef327..3a3ded4ff 100644 --- a/content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst +++ b/content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst @@ -81,7 +81,7 @@ Open the products you want to ship and set a weight on it. Don't forget to do the conversion if you are used to the imperial measurement system. -How to print shipping labels ? +How to print shipping labels ? =============================== The delivery order created from the sale order will take the shipping diff --git a/content/applications/inventory_and_mrp/inventory/shipping/operation/multipack.rst b/content/applications/inventory_and_mrp/inventory/shipping/operation/multipack.rst index 48d877738..7b7a5868a 100644 --- a/content/applications/inventory_and_mrp/inventory/shipping/operation/multipack.rst +++ b/content/applications/inventory_and_mrp/inventory/shipping/operation/multipack.rst @@ -13,7 +13,7 @@ Configuration ============= To configure the use of packages, go to the menu -:menuselection:`Inventory --> Configuration --> Settings`. +:menuselection:`Inventory --> Configuration --> Settings`. Locate the **Packages** section and tick **Record packages used on packing: pallets, boxes,...** diff --git a/content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst b/content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst index 55a81613f..5e58a269e 100644 --- a/content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst +++ b/content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst @@ -1,5 +1,5 @@ =============================== -How to setup a delivery method? +How to setup a delivery method? =============================== Overview @@ -33,7 +33,7 @@ order to see it : Configure the delivery method ----------------------------- -To configure your delivery methods, go to the **Inventory** module, +To configure your delivery methods, go to the **Inventory** module, click on :menuselection:`Configuration --> Delivery Methods`. First set a name and a transporter company. @@ -65,9 +65,9 @@ feature limits the list of countries on your e-commerce. .. image:: delivery_method/setup02.png :align: center -.. note:: +.. note:: You can integrate Odoo with external shippers in order to compute the - real price and packagings, and handle the printing the shipping labels. + real price and packagings, and handle the printing the shipping labels. See :doc:`third_party_shipper` Delivery process diff --git a/content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst b/content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst index 200a0bd6c..bb05b967e 100644 --- a/content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst +++ b/content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst @@ -16,7 +16,7 @@ Configuration Install the shipper company connector module -------------------------------------------- -In the inventory module, click on :menuselection:`Configuration --> Settings`. +In the inventory module, click on :menuselection:`Configuration --> Settings`. Under **Shipping Connectors**, flag the transportation companies you want to integrate : @@ -26,7 +26,7 @@ integrate : Then click on **Apply**. .. note:: - If you want to integrate delivery methods in your e-commerce, + If you want to integrate delivery methods in your e-commerce, you'll have to install the **eCommerce Delivery** module. Configure the delivery method diff --git a/content/applications/inventory_and_mrp/inventory/shipping/setup/ups_credentials.rst b/content/applications/inventory_and_mrp/inventory/shipping/setup/ups_credentials.rst index c02ae2bb6..956d41ad5 100644 --- a/content/applications/inventory_and_mrp/inventory/shipping/setup/ups_credentials.rst +++ b/content/applications/inventory_and_mrp/inventory/shipping/setup/ups_credentials.rst @@ -16,15 +16,15 @@ the UPS Developer Kit API Development and Production servers. Create a UPS Account ===================== -Note that only customers located in the US can open a UPS account online. -If you are located outside the US, you will need to contact UPS Customer +Note that only customers located in the US can open a UPS account online. +If you are located outside the US, you will need to contact UPS Customer Service in order to to open an account. -You can read additional information about opening a UPS account on the -their website, on the page, -`How to Open a UPS Account Online `_ +You can read additional information about opening a UPS account on the +their website, on the page, +`How to Open a UPS Account Online `_ -If you don't already have a UPS account, you can create one along with +If you don't already have a UPS account, you can create one along with your online profile by following these steps: 1. Access the UPS.com web site at @@ -34,7 +34,7 @@ at the top of the page. 2. Click the **Register for MyUPS** button, and follow the prompts to complete the registration process. -If you already have a UPS account, you can add it to your online profile as follows: +If you already have a UPS account, you can add it to your online profile as follows: 1. Log in to the `UPS.com website `_) using your UPS.com User ID and Password. @@ -45,7 +45,7 @@ If you already have a UPS account, you can add it to your online profile as foll 4. Click the **Add an Existing UPS Account** link in the **UPS Account Details** section of the page. -5. In the **Add New Account** screen, enter the **UPS Account Number**, +5. In the **Add New Account** screen, enter the **UPS Account Number**, **Account Name**, and **Postal Code** fields. The country defaults to United States.q diff --git a/content/applications/inventory_and_mrp/manufacturing/management/kit_shipping.rst b/content/applications/inventory_and_mrp/manufacturing/management/kit_shipping.rst index e85041bdc..d941b7f10 100644 --- a/content/applications/inventory_and_mrp/manufacturing/management/kit_shipping.rst +++ b/content/applications/inventory_and_mrp/manufacturing/management/kit_shipping.rst @@ -3,17 +3,17 @@ Kits ===== A *kit* is a set of components that are not pre-assembled or mixed. This is useful for -selling but also for creating cleaner and more effective *BOMs*. To use kits, you need -both the Manufacturing and Inventory apps to be installed. +selling but also for creating cleaner and more effective *BOMs*. To use kits, you need +both the Manufacturing and Inventory apps to be installed. Manage Stock of Component Products ================================== -If you want to assemble kits as they are ordered, managing stock of the kit components only, -you will use a *Kit BoM* Type without any manufacturing operations. +If you want to assemble kits as they are ordered, managing stock of the kit components only, +you will use a *Kit BoM* Type without any manufacturing operations. A product using a *Kit BoM* will appear as a single line item on a quotation and a sales order, -but will generate a delivery order with one line item for each of the components of the kit. In +but will generate a delivery order with one line item for each of the components of the kit. In the examples below, the first image shows a sales order for the kit *Custom Computer Kit*, while the second image shows the corresponding delivery order. @@ -26,16 +26,16 @@ while the second image shows the corresponding delivery order. Configuration ============= -From the *Products menu* in either the *Inventory* or *Manufacturing* app, create each component +From the *Products menu* in either the *Inventory* or *Manufacturing* app, create each component product (as you would with any other product), then create the top-level, or kit product. Because -you cannot track the stock of kit products, the *Product Type* should be set to *Consumable*. -However, if you are using Anglo-Saxon accounting, and you would like COGS to be posted when -invoicing your kits (and only for this reason), the storable product type should selected instead. +you cannot track the stock of kit products, the *Product Type* should be set to *Consumable*. +However, if you are using Anglo-Saxon accounting, and you would like COGS to be posted when +invoicing your kits (and only for this reason), the storable product type should selected instead. Because a kit product cannot be purchased, *Can be Purchased* should be unchecked. The route of the -kit product in the *Inventory* Tab does not really matter, as, for replenishment, only the route of -the components that will be taken into account only. +kit product in the *Inventory* Tab does not really matter, as, for replenishment, only the route of +the components that will be taken into account only. -All other parameters on the kit product may be modified according to your preference. The component +All other parameters on the kit product may be modified according to your preference. The component products require no particular configuration. Once the products are configured, create a *bill of materials* for the kit product. Add each component @@ -47,11 +47,11 @@ and its quantity. Select the *BoM Type* Kit. All other options may be left with Manage Stock of Kit Product and Component Products ================================================== -If you want to manage the stock of the *top-level kit product*, you will use a standard *BoM Type* +If you want to manage the stock of the *top-level kit product*, you will use a standard *BoM Type* manufacture or subcontracting instead. In this case you will either buy the final product from your -subcontractor, or make it yourself through a manufacturing order. +subcontractor, or make it yourself through a manufacturing order. -In that case the product type will be storable, and the BOM type either 'Manufacture this product' +In that case the product type will be storable, and the BOM type either 'Manufacture this product' or 'Subcontracting' as shown below. .. image:: kit_shipping/kit-storable.png @@ -59,29 +59,29 @@ or 'Subcontracting' as shown below. Build a cleaner BOM -==================== +==================== -As suggested above, a kit BOM can also simply be used to manage a more complex BOM. +As suggested above, a kit BOM can also simply be used to manage a more complex BOM. -Imagine the Custom Computer parts above were part of another final product. It would be much -clearer and simpler if the BOMs were added together (as shown below) instead of adding all +Imagine the Custom Computer parts above were part of another final product. It would be much +clearer and simpler if the BOMs were added together (as shown below) instead of adding all the individual parts one by one. .. image:: kit_shipping/kit-bom4.png :align: center -This is even better illustrated when looking at the BOM Structure Report, where it is -easy to expand and hide specific kit level or sub-assembly type BOMs. +This is even better illustrated when looking at the BOM Structure Report, where it is +easy to expand and hide specific kit level or sub-assembly type BOMs. .. image:: kit_shipping/kit-bom5.png :align: center On the creation of the manufacturing order, the BOM will automatically expand to show all -top level and kit level components. You can go back to the BOM at any point though as it -remains available on the form view of your manufacturing order. +top level and kit level components. You can go back to the BOM at any point though as it +remains available on the form view of your manufacturing order. .. image:: kit_shipping/kit-bom6.png :align: center -Finally, note that if there were any Operations in the Kit BOM, these would also simply be added -in to the work order list of the main component. +Finally, note that if there were any Operations in the Kit BOM, these would also simply be added +in to the work order list of the main component. diff --git a/content/applications/inventory_and_mrp/manufacturing/management/quality_control.rst b/content/applications/inventory_and_mrp/manufacturing/management/quality_control.rst index 8f6f35eae..0f14718bd 100644 --- a/content/applications/inventory_and_mrp/manufacturing/management/quality_control.rst +++ b/content/applications/inventory_and_mrp/manufacturing/management/quality_control.rst @@ -7,7 +7,7 @@ of your subcontractor, before registering the products into your stock, you can rely on Odoo's Quality module. -To control the quality of your production, you need to set a *Quality Control Point* +To control the quality of your production, you need to set a *Quality Control Point* on the Manufacturing Operation Type, as shown below. To create it, Go to :menuselection:`Quality --> Quality Control --> Control Points`, and click **Create**. If the check only applies to specific products, or product categories, you can specify these during @@ -16,13 +16,13 @@ the setup as well. .. image:: quality_control/qc_1.png :align: center -Regarding the reception of subcontracted products, instead of the Manufacturing Operation Type, -you need to select the 'Receipts' Operation type. For the rest, the same principles apply. +Regarding the reception of subcontracted products, instead of the Manufacturing Operation Type, +you need to select the 'Receipts' Operation type. For the rest, the same principles apply. .. image:: quality_control/qc_2.png :align: center By doing so, a quality check is automatically created each time a -finished product is made and/or received. Note that several Quality Check +finished product is made and/or received. Note that several Quality Check *Types* can be chosen from the dropdown. Note also that several Quality -Check Points can be set up for the same Operation Type. +Check Points can be set up for the same Operation Type. diff --git a/content/applications/inventory_and_mrp/manufacturing/management/sub_assemblies.rst b/content/applications/inventory_and_mrp/manufacturing/management/sub_assemblies.rst index b3cdb2192..87777afac 100644 --- a/content/applications/inventory_and_mrp/manufacturing/management/sub_assemblies.rst +++ b/content/applications/inventory_and_mrp/manufacturing/management/sub_assemblies.rst @@ -7,17 +7,17 @@ of Materials* or to represent your manufacturing flow more accurately. A *semi-finished product* is a manufactured product that is used as a component in a Bill of Material. -A *BoM* that employs *semi-finished products* is referred to as +A *BoM* that employs *semi-finished products* is referred to as a multi-level BoM, where we distinguish between the *top level Product* -and the *sub-assemblies*. +and the *sub-assemblies*. Configure a Multi Level BoM ============================ To configure a *multi-level BoM*, you will need the top-level product and its sub-assemblies. Therefore, you must first create the sub-assembly -products and their respective Bill of Materials. Please refer to -:doc:`bill_configuration` for more details on how to create a BOM. +products and their respective Bill of Materials. Please refer to +:doc:`bill_configuration` for more details on how to create a BOM. .. image:: sub_assemblies/sf_1.png :align: center @@ -25,33 +25,33 @@ products and their respective Bill of Materials. Please refer to Configure the Main BoM ====================== -Then on the final product form, simply add your semi-finished -products to the Bill of Material. +Then on the final product form, simply add your semi-finished +products to the Bill of Material. .. image:: sub_assemblies/sf_2.png :align: center -Manage your production planning +Manage your production planning ================================= -There are several methods to manage the triggering of the various manufacturing orders. +There are several methods to manage the triggering of the various manufacturing orders. -If every time a manufacturing order is confirmed for the main product, you'd like one for -the semi-finished products as well, you have two options: +If every time a manufacturing order is confirmed for the main product, you'd like one for +the semi-finished products as well, you have two options: -Option 1 : Create re-ordering rules for the semi-finished products, with both the minimum -and maximum desired stock quantities at 0. +Option 1 : Create re-ordering rules for the semi-finished products, with both the minimum +and maximum desired stock quantities at 0. .. image:: sub_assemblies/sf_3.png :align: center -Option 2 : Use the Replenish on Order (MTO) route on the semi-finished product, as well as -the manufacturing one. +Option 2 : Use the Replenish on Order (MTO) route on the semi-finished product, as well as +the manufacturing one. -Note that Option 1 is usually recommended over Option 2 as it is more flexible. The MTO route -creates a unique link between the semi-finished and the top level product, whereas the +Note that Option 1 is usually recommended over Option 2 as it is more flexible. The MTO route +creates a unique link between the semi-finished and the top level product, whereas the re-ordering rule allows you to simply unreserve that production from the top level product -production and redirect it to another, more pressing demand, for example. +production and redirect it to another, more pressing demand, for example. In any case, as soon as the semi-finished product is produced, it will become available in the manufacturing order of the final product, as shown below. diff --git a/content/applications/inventory_and_mrp/manufacturing/management/subcontracting.rst b/content/applications/inventory_and_mrp/manufacturing/management/subcontracting.rst index 8c3d92175..3fd6f93f3 100644 --- a/content/applications/inventory_and_mrp/manufacturing/management/subcontracting.rst +++ b/content/applications/inventory_and_mrp/manufacturing/management/subcontracting.rst @@ -6,7 +6,7 @@ Outsourcing a portion or all of your company’s manufacturing needs is not easy. To make it work correctly, you have to: - Manage the inventory of raw materials at your subcontractor -- Ship raw material to your subcontractors, at the right time +- Ship raw material to your subcontractors, at the right time - Control incoming goods quality - Control subcontractors bills @@ -15,7 +15,7 @@ produced out of raw materials “A” and “B”. .. image:: subcontracting/subcontracting_01.png :align: center - :alt: + :alt: With its MRP subcontracting feature, Odoo helps you handle this flow easily. @@ -27,12 +27,12 @@ To use the subcontracting feature, go to :menuselection:`Manufacturing .. image:: subcontracting/sbc_1.png :align: center - :alt: + :alt: To define if a product must be subcontracted, use a *Bill of Materials (BoM)* of type *Subcontracting*. -To create a new *BoM*, go to :menuselection:`Manufacturing --> Products --> +To create a new *BoM*, go to :menuselection:`Manufacturing --> Products --> Bill of Materials` and hit create. Then, list the components your subcontractor needs to manufacture the product. For costing purposes, you might want to register all the components, even the ones @@ -43,7 +43,7 @@ several subcontractors. .. image:: subcontracting/sbc_2.png :align: center - :alt: + :alt: Basic Subcontracting Flow ========================= @@ -55,7 +55,7 @@ defined as a subcontractor on the *BoM* of these products. .. image:: subcontracting/subcontracting_04.png :align: center - :alt: + :alt: Once the *PO* is validated (1), a pending receipt is created. When the products are received, validate the receipt (2), with the actual @@ -71,7 +71,7 @@ quantity received. As a result, Odoo does the following things for you: .. note:: The *PO* is optional. If you create a receipt manually, with the right - subcontractor, Odoo still performs all the moves. This can be useful if + subcontractor, Odoo still performs all the moves. This can be useful if the subcontractor does not bill a fixed price per item, but rather the time and materials used. @@ -93,15 +93,15 @@ With: Sending raw materials to your subcontractors (**A**) does not impact the inventory valuation, as the components are still valued as part of -your stock. This is managed by making the *Subcontracting Location* an -*Internal Location*. +your stock. This is managed by making the *Subcontracting Location* an +*Internal Location*. Then, the vendor price set on the product C form has to be what has to be paid to the subcontractor for his parts and service time: **B + s**. The product cost has to be: **A + B + s**, how much the product is valued in the accounting. -Finally, the subcontractor bill then matches the purchase order, with +Finally, the subcontractor bill then matches the purchase order, with the proposed price coming from the finished products C. .. note:: @@ -115,99 +115,99 @@ Traceability In case the received products from the subcontractor contain tracked components, their serial or lot numbers need to be specified during the -receipt. +receipt. In that case, on the receipt of the subcontracted product, a *Record Components* -button appears. Click on it to open a dialog box and record the serial/lot numbers of +button appears. Click on it to open a dialog box and record the serial/lot numbers of the components. If the finished product is also tracked, its serial/lot number can be registered here too. .. image:: subcontracting/sbc_3.png :align: center - :alt: + :alt: For audit purposes, it is possible to check the lot numbers recorded on a receipt by using the icon on the right of the finished products: .. image:: subcontracting/sbc_4.png :align: center - :alt: + :alt: -Also note that in case flexible consumption has been selected on the subcontracted -BOM for a non-tracked product, the record components option will also appear -optionally on each move line, if you want to register more or less component consumption -at your subcontracting location, when receiving your final product. +Also note that in case flexible consumption has been selected on the subcontracted +BOM for a non-tracked product, the record components option will also appear +optionally on each move line, if you want to register more or less component consumption +at your subcontracting location, when receiving your final product. .. image:: subcontracting/sbc_5.png :align: center - :alt: + :alt: -As you can see, the reception of both of these non-tracked products can either be executed -by selecting the 'Set Quantities' Option or via the move line hamburger menus. +As you can see, the reception of both of these non-tracked products can either be executed +by selecting the 'Set Quantities' Option or via the move line hamburger menus. Automate Replenishment of Subcontractors ======================================== -There are two ways to automate the supply of raw materials to your +There are two ways to automate the supply of raw materials to your subcontractors when purchasing the final product. The chosen method depends on whether or not you want the materials to transit through your -warehouse. Both of these methods are described as pull style mechanisms as -their trigger is the inital PO to the subcontractor, which creates a need -at the subcontracting location, for raw material. +warehouse. Both of these methods are described as pull style mechanisms as +their trigger is the inital PO to the subcontractor, which creates a need +at the subcontracting location, for raw material. If you are supplying your subcontractor with raw material from your own warehouse, -you must activate the 'Resupply Subcontractor on Order' route as shown +you must activate the 'Resupply Subcontractor on Order' route as shown below. If this is a component that you buy from a vendor, the buy route -should also be activated. +should also be activated. .. image:: subcontracting/sbc_6.png :align: center - :alt: + :alt: -Now, if you want your vendor to resupply your subcontractor directly, you -must choose the 'Dropship Subcontractor on Order' option instead. In order -for this option to be active on the product form, you must first activate the +Now, if you want your vendor to resupply your subcontractor directly, you +must choose the 'Dropship Subcontractor on Order' option instead. In order +for this option to be active on the product form, you must first activate the dropship option from :menuselection:`Purchase --> Configuration --> Settings --> Dropshipping`. -Once the PO to the subcontractor is validated, this route will create a dropship -RFQ from your vendor to that subcontractor. You then just need to review and validate it. +Once the PO to the subcontractor is validated, this route will create a dropship +RFQ from your vendor to that subcontractor. You then just need to review and validate it. .. image:: subcontracting/sbc_7.png :align: center - :alt: + :alt: -Note that the buy route is not selected in this case, as the dropship route is -a buy route already. +Note that the buy route is not selected in this case, as the dropship route is +a buy route already. Finally, if you want to track the stock of these raw materials at your subcontracting location(s), then you must activate *Multi-locations* in :menuselection:`Inventory --> -Configuration --> Settings --> Storage locations`. +Configuration --> Settings --> Storage locations`. -From the location form, you are then able to access the Current Stock. +From the location form, you are then able to access the Current Stock. .. image:: subcontracting/sbc_8.png :align: center - :alt: + :alt: Manual Replenishment -------------------------------- -You can also choose to replenish your subcontractors manually. +You can also choose to replenish your subcontractors manually. -If you want to send components to your subcontractor at your own convenience, -select the 'Resupply Subcontractor' Operation Type from the *Inventory* Module, -and create a picking, specifying to which subcontractor you are delivering to. +If you want to send components to your subcontractor at your own convenience, +select the 'Resupply Subcontractor' Operation Type from the *Inventory* Module, +and create a picking, specifying to which subcontractor you are delivering to. .. image:: subcontracting/sbc_9.png :align: center - :alt: + :alt: -Alternatively, you can also manually ask your vendor to resupply your subcontractor +Alternatively, you can also manually ask your vendor to resupply your subcontractor by creating a dropship type PO, with your subcontractor set as the delivery address. .. image:: subcontracting/sbc_10.png diff --git a/content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst b/content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst index fc6c2c997..3539de09a 100644 --- a/content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst +++ b/content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst @@ -8,11 +8,11 @@ production based on your demand forecast. Configuration ============= -Go to the :menuselection:`Manufacturing app --> Configuration --> Settings` and +Go to the :menuselection:`Manufacturing app --> Configuration --> Settings` and activate the Master Production Schedule feature before hitting save. .. tip:: - In the MPS settings, you can define the time range of your MPS (month/week/day) + In the MPS settings, you can define the time range of your MPS (month/week/day) and the number of periods you want to display at all times. Now, go to :menuselection:`Planning --> Master Production Schedule` and click on *add a @@ -24,7 +24,7 @@ maximum quantities that must or can be replenished in each period. :align: center In the MPS view, you can decide which information you would like to display -by clicking on *rows*. For instance, the *Actual demand* will show you which +by clicking on *rows*. For instance, the *Actual demand* will show you which quantity of products has already been ordered for the period, or *Available to Promise*, what can still be sold during that same period (what you plan to replenish - what is already sold during the period). You can also decide to hide rows if you like. @@ -35,15 +35,15 @@ is already sold during the period). You can also decide to hide rows if you like Estimate your demand and launch replenishment ============================================= -The next step is to estimate the demand for the chosen period. This is done +The next step is to estimate the demand for the chosen period. This is done in the *Forecasted Demand* Row. You can easily, at any time, compare the demand -forecast with the actual demand (= confirmed sales). The demand forecast for a +forecast with the actual demand (= confirmed sales). The demand forecast for a finished product will impact the indirect demand for its components. .. image:: use_mps/mps_3.png :align: center -Once the forecasted demand has been set, the quantity to replenish for the +Once the forecasted demand has been set, the quantity to replenish for the different periods will automatically be computed. The replenishments you are supposed to launch based on your lead times (vendor lead time or manufacturing lead time) are then displayed in green. You can now launch the replenishment by clicking diff --git a/content/applications/productivity/iot/config/flash_sdcard.rst b/content/applications/productivity/iot/config/flash_sdcard.rst index 4728d2216..cef0d4493 100644 --- a/content/applications/productivity/iot/config/flash_sdcard.rst +++ b/content/applications/productivity/iot/config/flash_sdcard.rst @@ -16,7 +16,7 @@ will be saved. .. note:: This process can take more than 30 minutes. Do not turn off or unplug - the IoT Box as it would leave it in an inconsistent state. + the IoT Box as it would leave it in an inconsistent state. .. image:: flash_sdcard/flash_sdcard01.png :align: center diff --git a/content/applications/productivity/iot/config/pos.rst b/content/applications/productivity/iot/config/pos.rst index c86b3ce63..1d58960e3 100644 --- a/content/applications/productivity/iot/config/pos.rst +++ b/content/applications/productivity/iot/config/pos.rst @@ -26,7 +26,7 @@ Before starting, make sure you have the following: The list of supported hardware can be found on the `POS Hardware page `__ -Set Up +Set Up ~~~~~~~ To connect hardware to the PoS, the first step is to connect an IoT Box diff --git a/content/applications/productivity/iot/devices/screen.rst b/content/applications/productivity/iot/devices/screen.rst index a6583c14c..99ef72652 100644 --- a/content/applications/productivity/iot/devices/screen.rst +++ b/content/applications/productivity/iot/devices/screen.rst @@ -8,7 +8,7 @@ connected, the screen can be used to display a :abbr:`PoS (Point of Sale)` order .. image:: screen/screen-pos-client-display.png :align: center :alt: An example of a PoS (point of sale) order on a screen display. - + .. note:: Access the customer display from any other computer by going to the :abbr:`IoT (Internet of Things)` Box homepage and clicking on the :guilabel:`POS Display` button. @@ -47,21 +47,21 @@ screen. :align: center :alt: The default "POS Client Display" screen that appears when a screen display is successfully connected to an IoT Box. - + The screen should also appear in the list of :guilabel:`Displays` on the :abbr:`IoT (Internet of Things)` Box homepage. .. image:: screen/screen-screen-name-example.png :align: center :alt: An example of a screen display name shown on the IoT Box homepage. - + .. note:: If no screen is detected, a default display named :guilabel:`Distant Display` will be used instead. .. image:: screen/screen-no-screen.png :align: center :alt: The "Distant Display" screen name will be used if no screen is detected. - + Usage ===== @@ -78,7 +78,7 @@ Now, select :guilabel:`IoT Box` in the drop-down menu and choose the screen in t .. image:: screen/screen-pos-screen-config.png :align: center :alt: Connect the screen display to the Point of Sale app. - + The screen is now available for :abbr:`PoS (Point of Sale)` sessions. A "screen" icon will appear in the top bar to inform the connection status with the screen. diff --git a/content/applications/sales/crm/acquire_leads/convert.rst b/content/applications/sales/crm/acquire_leads/convert.rst index 14ea5541a..ac2eb1af7 100644 --- a/content/applications/sales/crm/acquire_leads/convert.rst +++ b/content/applications/sales/crm/acquire_leads/convert.rst @@ -4,7 +4,7 @@ Convert leads into opportunities The system can generate leads instead of opportunities, in order to add a qualification step before converting a *Lead* into an -*Opportunity* and assigning to the right sales people. +*Opportunity* and assigning to the right sales people. You can activate this mode from the CRM Settings. It applies to all your sales channels by default. But you can make it specific for specific channels @@ -46,7 +46,7 @@ Merge opportunities Odoo will also automatically propose to merge opportunities if they have the same email address. When merging opportunities, Odoo merges the information into the opportunity which was created first, giving -priority to the information present on the first opportunity. +priority to the information present on the first opportunity. No information is lost: data from the other opportunity is logged in the chatter and the information fields for easy access. diff --git a/content/applications/sales/crm/acquire_leads/lead_mining.rst b/content/applications/sales/crm/acquire_leads/lead_mining.rst index 71874f279..b9aa91ba3 100644 --- a/content/applications/sales/crm/acquire_leads/lead_mining.rst +++ b/content/applications/sales/crm/acquire_leads/lead_mining.rst @@ -8,7 +8,7 @@ Configuration ============== For this feature to work, go to :menuselection:`CRM --> Configuration --> Settings` and activate the **Lead Mining** feature. - + .. image:: lead_mining/LM1.png :align: center @@ -31,16 +31,16 @@ From there, click on the **Generate Leads** button, a window where you will be a :align: center -When choosing to target Companies and their contacts you can choose the contacts you are getting based on Role or Seniority. +When choosing to target Companies and their contacts you can choose the contacts you are getting based on Role or Seniority. When getting contact information make sure to be aware of the latest EU regulation, get more information about General Data Protection Regulation on -`Odoo GDPR `__, +`Odoo GDPR `__, You can decide to filter the leads you are getting depending on the size (number of employees) of the companies. You can pick the countries your leads are coming from. It is possible to pick multiple countries. You can pick the industries your leads are coming from. It is possible to pick multiple industries. -You can choose the salesperson and the Salesteam the lead will be assigned to. +You can choose the salesperson and the Salesteam the lead will be assigned to. You can also add tags to track your generated leads. .. tip:: @@ -50,7 +50,7 @@ Pricing ================== This is an In-App Purchase feature, each generated lead will cost you one credit. If you choose to get contact information each contact will also cost you one additional credit. -Here is the pricing for this `feature `__, +Here is the pricing for this `feature `__, To buy credits you can either go to :menuselection:`CRM --> Configuration --> Settings --> Buy Credits`; or go to :menuselection:`Settings --> Contacts --> Odoo IAP --> View my Services`. @@ -70,4 +70,3 @@ Credits`; or go to :menuselection:`Settings --> Contacts --> Odoo IAP --> View m .. seealso:: * :doc:`In-App Purchases (IAP) ` - diff --git a/content/applications/sales/crm/performance.rst b/content/applications/sales/crm/performance.rst index 8f679f807..e1a628499 100644 --- a/content/applications/sales/crm/performance.rst +++ b/content/applications/sales/crm/performance.rst @@ -1,7 +1,7 @@ :nosearch: =================== -Analyze performance +Analyze performance =================== .. toctree:: diff --git a/content/applications/sales/point_of_sale/advanced_pricing_features/pricelists.rst b/content/applications/sales/point_of_sale/advanced_pricing_features/pricelists.rst index 192454906..aff4a704b 100644 --- a/content/applications/sales/point_of_sale/advanced_pricing_features/pricelists.rst +++ b/content/applications/sales/point_of_sale/advanced_pricing_features/pricelists.rst @@ -16,15 +16,15 @@ convenient. Set up Pricelists ================= -To set up a *Pricelist*, go to :menuselection:`Point of Sale --> Configuration --> Configuration` -and enable the *Pricelist* feature. Then, go to :menuselection:`Point of Sale --> Configuration +To set up a *Pricelist*, go to :menuselection:`Point of Sale --> Configuration --> Configuration` +and enable the *Pricelist* feature. Then, go to :menuselection:`Point of Sale --> Configuration --> Point of Sale` and enable *Pricelist* for the *PoS*. .. image:: pricelists/pricelists_01.png :align: center -Now, you can create *Pricelists* by clicking on the *Pricelists* link. -Then, set it up by choosing the product category you want to include in your happy hour +Now, you can create *Pricelists* by clicking on the *Pricelists* link. +Then, set it up by choosing the product category you want to include in your happy hour and the discount. .. image:: pricelists/pricelists_02.png diff --git a/content/applications/sales/point_of_sale/overview/getting_started.rst b/content/applications/sales/point_of_sale/overview/getting_started.rst index a46b07674..32505898e 100644 --- a/content/applications/sales/point_of_sale/overview/getting_started.rst +++ b/content/applications/sales/point_of_sale/overview/getting_started.rst @@ -6,7 +6,7 @@ When working with a Point of Sale application, employees want a simple, and user-friendly solution. A solution that works online or offline and with any device. -A Point of Sale system is a fully integrated application that allows any transaction, +A Point of Sale system is a fully integrated application that allows any transaction, automatically registers product moves in your stock, and gives you real-time statistics and consolidations across all shops. @@ -84,10 +84,10 @@ payment. Return and refund products -------------------------- -Having a well-thought-out return policy is key to keep customers satisfied and make the process +Having a well-thought-out return policy is key to keep customers satisfied and make the process of accepting returns and refunds easy for you. -To do that, from the PoS interface, select the product and quantity (with the +/- button) that the +To do that, from the PoS interface, select the product and quantity (with the +/- button) that the customer wants to return. For multiple products, repeat the process individually. .. image:: getting_started/getting_started_06.png @@ -104,7 +104,7 @@ process the payment and validate it. Close the PoS session --------------------- -To close your session at the end of the day, click on the close button on the upper right corner +To close your session at the end of the day, click on the close button on the upper right corner of your screen and confirm. Now, close the session on the dashboard view. .. image:: getting_started/getting_started_08.png @@ -114,8 +114,8 @@ of your screen and confirm. Now, close the session on the dashboard view. .. tip:: It’s strongly advised to close your PoS session at the end of each day. -Once a session is closed, you can see a summary of all transactions per payment method. -Then, click on a line to see all orders that were paid during your PoS session. +Once a session is closed, you can see a summary of all transactions per payment method. +Then, click on a line to see all orders that were paid during your PoS session. If everything is correct, validate the session and post the closing entries. .. image:: getting_started/getting_started_09.png diff --git a/content/applications/sales/point_of_sale/restaurant/fiscal_position.rst b/content/applications/sales/point_of_sale/restaurant/fiscal_position.rst index f6339ff47..0aa009376 100644 --- a/content/applications/sales/point_of_sale/restaurant/fiscal_position.rst +++ b/content/applications/sales/point_of_sale/restaurant/fiscal_position.rst @@ -10,7 +10,7 @@ takes away. Set up fiscal positions for PoS =============================== -To enable this feature, go to :menuselection:`Point of Sale --> Configuration --> Point of Sale` +To enable this feature, go to :menuselection:`Point of Sale --> Configuration --> Point of Sale` and check *Fiscal Position per Order*. Now, you can choose the fiscal positions you want for your *PoS*. @@ -32,8 +32,8 @@ Now, choose the fiscal position you need for the current order. Set up a default fiscal position ================================ -If you want to use a default fiscal position, meaning that a preexisting value is always -automatically assigned, go to :menuselection:`Point of Sale --> Configuration +If you want to use a default fiscal position, meaning that a preexisting value is always +automatically assigned, go to :menuselection:`Point of Sale --> Configuration --> Point of Sale` and enable *Fiscal Position*. Now, choose one to set as the default one. .. image:: fiscal_position/fiscal_position_03.png diff --git a/content/applications/sales/point_of_sale/restaurant/restaurant.rst b/content/applications/sales/point_of_sale/restaurant/restaurant.rst index 6a20254d5..b955ab048 100644 --- a/content/applications/sales/point_of_sale/restaurant/restaurant.rst +++ b/content/applications/sales/point_of_sale/restaurant/restaurant.rst @@ -96,7 +96,7 @@ customer. .. image:: restaurant/restaurant_09.png :align: center - :alt: View of the pos interface and transfer button. How to transfer customers from one table + :alt: View of the pos interface and transfer button. How to transfer customers from one table to another Register an additional order diff --git a/content/applications/sales/point_of_sale/shop/cash_rounding.rst b/content/applications/sales/point_of_sale/shop/cash_rounding.rst index fa59062e1..ecf8c1e0e 100644 --- a/content/applications/sales/point_of_sale/shop/cash_rounding.rst +++ b/content/applications/sales/point_of_sale/shop/cash_rounding.rst @@ -2,12 +2,12 @@ Cash Rounding ============= -**Cash rounding** is required when the lowest physical denomination -of currency, or the smallest coin, is higher than the minimum unit +**Cash rounding** is required when the lowest physical denomination +of currency, or the smallest coin, is higher than the minimum unit of account. -For example, some countries require their companies to round up or -down the total amount of an invoice to the nearest five cents, when +For example, some countries require their companies to round up or +down the total amount of an invoice to the nearest five cents, when the payment is made in cash. Each point of sale in Odoo can be configured to apply cash rounding @@ -16,20 +16,20 @@ to the totals of its bills or receipts. Configuration ============= -Go to :menuselection:`Point of Sale --> Configuration --> Settings` +Go to :menuselection:`Point of Sale --> Configuration --> Settings` and enable *Cash Rounding*, then click on *Save*. .. image:: cash_rounding/cash_rounding01.png :align: center -Go to :menuselection:`Point of Sale --> Configuration --> Point of +Go to :menuselection:`Point of Sale --> Configuration --> Point of Sale`, open the point of sale you want to configure, and enable the *Cash Rounding* option. To define the **Rounding Method**, open the drop-down list and click on *Create and Edit...*. -Define here your *Rounding Precision*, *Profit Account*, and +Define here your *Rounding Precision*, *Profit Account*, and *Loss Account*, then save both the Rounding Method and your Point of Sale settings. @@ -43,5 +43,5 @@ rounding according to your settings. :align: center .. note:: - Odoo Point of Sale only support the *Add a rounding line* + Odoo Point of Sale only support the *Add a rounding line* rounding strategies and *Half-up* rounding methods. diff --git a/content/applications/sales/sales/products_prices/prices/pricing.rst b/content/applications/sales/sales/products_prices/prices/pricing.rst index 9ed0dbe80..b9424b5d9 100644 --- a/content/applications/sales/sales/products_prices/prices/pricing.rst +++ b/content/applications/sales/sales/products_prices/prices/pricing.rst @@ -19,14 +19,14 @@ Choose your pricing strategy from :menuselection:`Sales --> Settings`. * *Different prices per customer segment :* you will set several prices per products ; * *Advanced pricing based on formula :* will let you apply discounts, margins and roundings. -Several prices per product +Several prices per product ========================== To apply several prices per product, select *Different prices per customer segment* in :menuselection:`Sales --> Settings`. Then open the *Sales* tab in the product detail form. You can settle following strategies. -Prices per customer segment +Prices per customer segment --------------------------- Create pricelists for your customer segments: e.g. registered, premium, etc. @@ -88,10 +88,10 @@ Each pricelist item can be associated to either all products, to a product inter .. note:: - * Once again the system is smart. If a rule is set for a particular item and another one for its category, Odoo will take the rule of the item. + * Once again the system is smart. If a rule is set for a particular item and another one for its category, Odoo will take the rule of the item. * Make sure at least one pricelist item covers all your products. - + There are 3 modes of computation: fix price, discount & formula. .. image:: pricing/price_computation.png @@ -122,7 +122,7 @@ Any new customer recorded in Odoo gets a default pricelist, i.e. the first one i The default pricelist can be replaced when creating a sales order. -.. tip:: You can change the pricelists sequence by drag & drop in list view. +.. tip:: You can change the pricelists sequence by drag & drop in list view. Compute and show discount % to customers ======================================== diff --git a/content/applications/sales/sales/products_prices/products/import.rst b/content/applications/sales/sales/products_prices/products/import.rst index 1682a7fdf..ca9a44719 100644 --- a/content/applications/sales/sales/products_prices/products/import.rst +++ b/content/applications/sales/sales/products_prices/products/import.rst @@ -4,7 +4,7 @@ How to import Products with Categories and Variants Import templates are provided in the **Import Tool** of the most common data to import (contacts, products, bank statements, etc.). -You can open them with any spreadsheet software (Microsoft Office, +You can open them with any spreadsheet software (Microsoft Office, OpenOffice, Google Drive, etc.). How to customize the file diff --git a/content/applications/sales/sales/products_prices/products/product_images.rst b/content/applications/sales/sales/products_prices/products/product_images.rst index df80f2b91..1d82ba213 100644 --- a/content/applications/sales/sales/products_prices/products/product_images.rst +++ b/content/applications/sales/sales/products_prices/products/product_images.rst @@ -2,9 +2,9 @@ Automatically get product images with Google Images =================================================== -The product images are very useful in Odoo, for example, to quickly find a product or check if you -scanned the right one, but it can be a bit painful to set up especially if you have a lot of -products. **Google Custom Search** allows finding images automatically for your product, based on +The product images are very useful in Odoo, for example, to quickly find a product or check if you +scanned the right one, but it can be a bit painful to set up especially if you have a lot of +products. **Google Custom Search** allows finding images automatically for your product, based on their barcode, keeping your focus on what matters in your business. .. _product_images/configuration: @@ -14,7 +14,7 @@ Configuration This functionnality requires configuration both on Google and on Odoo. -With a free Google account, you can get up to 100 free images per day. If you need a higher rate, +With a free Google account, you can get up to 100 free images per day. If you need a higher rate, you'll have to upgrade to a billing account. .. _product_images/google-api-dashboard: @@ -25,7 +25,7 @@ Google API dashboard #. Go to the `Google Cloud Platform API & Services `_ page to generate Google Custom Search API credentials. Log in with your Google account. -#. Select or create an API project to store the credentials. Give it an explicit name +#. Select or create an API project to store the credentials. Give it an explicit name (e.g. Odoo Images). #. In the credentials section, click on **Create Credentials** and select **API Keys**. @@ -73,11 +73,11 @@ Google Programmable Search dashboard that you created (either by clicking on **Control Panel** on the confirmation page or by clicking on the name of your Search Engine on the Home page). -#. In the **basics** tab, make sure to enable **Image search**, **SafeSearch** and +#. In the **basics** tab, make sure to enable **Image search**, **SafeSearch** and **Search the entire web**. .. note:: - Once **Search the entire web** is enabled, you can safely delete the site that you put at the + Once **Search the entire web** is enabled, you can safely delete the site that you put at the previous step. #. Save your **Search Engine Id**. You’ll need it for the next step in Odoo! @@ -101,7 +101,7 @@ Automatically get your product images in Odoo The action to automatically get your product images in Odoo appears in any Products or Product Variants list view. Here is a step-by-step guide from the Inventory app. -#. Go to the Products menu (:menuselection:`Products --> Products` or :menuselection:`Products --> +#. Go to the Products menu (:menuselection:`Products --> Products` or :menuselection:`Products --> Product Variants`) from any application that uses products like Inventory or Sales. #. On the list view, select the products that needs an image. @@ -114,7 +114,7 @@ Variants list view. Here is a step-by-step guide from the Inventory app. - If you select a product that has one or more variants from the Products view, each variant matching the previous criteria will be processed. -#. In the action menu, select **Get Pictures from Google Images** and validate by clicking on +#. In the action menu, select **Get Pictures from Google Images** and validate by clicking on **Get picture**. #. You should see your images appearing incrementally. @@ -124,7 +124,7 @@ Variants list view. Here is a step-by-step guide from the Inventory app. be fetched as a background job. - The background job process about 100 images in a minute. If you reach the quota authorized by Google (either with a free or a paid plan), the background job will put itself on hold - for 24 hours and continue where it stopped the day before. + for 24 hours and continue where it stopped the day before. .. seealso:: - `Create, modify, or close your Google Cloud Billing account diff --git a/content/applications/sales/sales/send_quotations/terms_and_conditions.rst b/content/applications/sales/sales/send_quotations/terms_and_conditions.rst index 4ee7627e9..9cb44753f 100644 --- a/content/applications/sales/sales/send_quotations/terms_and_conditions.rst +++ b/content/applications/sales/sales/send_quotations/terms_and_conditions.rst @@ -22,7 +22,7 @@ Go to :menuselection:`Accounting --> Configuration --> Settings` and activate :align: center :class: img-thumbnail :alt: How to enable Default Terms & Conditions on Odoo Sales? - + .. note:: Please note that this feature is activated via the settings of the **Invoicing App** and **not** via the settings of the **Sales App**. Moreover, you don't need to install the invoicing @@ -55,7 +55,7 @@ templates. This is interesting if you have different terms and conditions within .. important:: Be sure to check out our documentation about quotation templates: :doc:`quote_template`, to master each step of this amazing feature. - + General Terms & Conditions ========================== diff --git a/content/applications/websites/ecommerce.rst b/content/applications/websites/ecommerce.rst index 703accfec..efafc8ab0 100644 --- a/content/applications/websites/ecommerce.rst +++ b/content/applications/websites/ecommerce.rst @@ -11,7 +11,7 @@ Run a modern open-source online store with Odoo eCommerce. Learn how to sell onl products and increase your average cart sizes. .. important:: - Odoo offers a :ref:`free custom domain name ` to all Odoo Online + Odoo offers a :ref:`free custom domain name ` to all Odoo Online databases for one year. Visitors can then access your website with an address such as ``www.example.com`` rather than the default ``example.odoo.com``. diff --git a/content/applications/websites/ecommerce/getting_started/catalog.rst b/content/applications/websites/ecommerce/getting_started/catalog.rst index da5619e51..30da338b0 100644 --- a/content/applications/websites/ecommerce/getting_started/catalog.rst +++ b/content/applications/websites/ecommerce/getting_started/catalog.rst @@ -1,5 +1,5 @@ ================================== -How to customize my catalog page +How to customize my catalog page ================================== Product Catalog diff --git a/content/applications/websites/ecommerce/managing_products/multi_images.rst b/content/applications/websites/ecommerce/managing_products/multi_images.rst index 8a096947e..10f36abf5 100644 --- a/content/applications/websites/ecommerce/managing_products/multi_images.rst +++ b/content/applications/websites/ecommerce/managing_products/multi_images.rst @@ -15,5 +15,5 @@ If you like to show your products under several angles, you can turn the image i .. image:: multi_images/multi_images02.png :align: center -.. note:: +.. note:: Such extra image are common to all the product variants (if any). diff --git a/content/applications/websites/ecommerce/maximizing_revenue/reviews.rst b/content/applications/websites/ecommerce/maximizing_revenue/reviews.rst index 729f6f172..2f74c5c40 100644 --- a/content/applications/websites/ecommerce/maximizing_revenue/reviews.rst +++ b/content/applications/websites/ecommerce/maximizing_revenue/reviews.rst @@ -46,7 +46,7 @@ You can easily moderate by using the chatter, either in the product detail form or on the web page. To unpublish the post, open the product web page and click the *Published* button -to turn it red (*Unpublished*). +to turn it red (*Unpublished*). .. image:: reviews/comment_unpublish.png :align: center diff --git a/content/applications/websites/ecommerce/shopper_experience/portal.rst b/content/applications/websites/ecommerce/shopper_experience/portal.rst index 66e334d05..00b7b15ce 100644 --- a/content/applications/websites/ecommerce/shopper_experience/portal.rst +++ b/content/applications/websites/ecommerce/shopper_experience/portal.rst @@ -2,10 +2,10 @@ How customers can access their customer account ================================================= -It has never been so easy for your customers to access their -customer account. Forget endless signup forms, -Odoo makes it as easy as ABC. -They are suggested to sign up (name, email, password) when the order +It has never been so easy for your customers to access their +customer account. Forget endless signup forms, +Odoo makes it as easy as ABC. +They are suggested to sign up (name, email, password) when the order is placed, and not before. Indeed, nothing is more annoying than going through a signup process before buying something. diff --git a/content/applications/websites/website.rst b/content/applications/websites/website.rst index 8e0afd1aa..aefeedecc 100644 --- a/content/applications/websites/website.rst +++ b/content/applications/websites/website.rst @@ -11,7 +11,7 @@ Discover the best **Open-Source Website Builder** and learn how to build beautif convert visitors into leads or revenues. .. important:: - Odoo offers a :ref:`free custom domain name ` to all Odoo Online + Odoo offers a :ref:`free custom domain name ` to all Odoo Online databases for one year. Visitors can then access your website with an address such as ``www.example.com`` rather than the default ``example.odoo.com``. diff --git a/content/applications/websites/website/optimize/google_analytics.rst b/content/applications/websites/website/optimize/google_analytics.rst index a1383823f..71943fe35 100644 --- a/content/applications/websites/website/optimize/google_analytics.rst +++ b/content/applications/websites/website/optimize/google_analytics.rst @@ -4,10 +4,10 @@ How to track your website's traffic in Google Analytics To follow your website's traffic with Google Analytics: -- `Create a Google Analytics account `__ if +- `Create a Google Analytics account `__ if you don't have any. -- Go through the creation form and accept the conditions to get the tracking ID. +- Go through the creation form and accept the conditions to get the tracking ID. .. image:: google_analytics/google_analytics_account.png :align: center diff --git a/content/applications/websites/website/optimize/seo.rst b/content/applications/websites/website/optimize/seo.rst index b7a9732fc..2251c7989 100644 --- a/content/applications/websites/website/optimize/seo.rst +++ b/content/applications/websites/website/optimize/seo.rst @@ -29,7 +29,7 @@ Title, Description Every web page should define the ```` and ``<description>`` meta data. These information elements are used by search engines to promote your website. They are automatically generated based on page title & content, but you can -finetune them. Make sure they fit the content of the page, otherwise you will +finetune them. Make sure they fit the content of the page, otherwise you will be downgraded by search engines. .. image:: seo/seo01.png @@ -40,15 +40,15 @@ Keywords In order to write quality content and boost your traffic, Odoo provides a ``<keyword>`` finder. Those keywords are the searches you want to head towards your website. For each keyword, you see how it is used in the content -(H1, H2, page title, page description, page content) and what are the related +(H1, H2, page title, page description, page content) and what are the related searches in Google. The more keywords are used the better. .. image:: seo/seo02.png :align: center -.. note:: +.. note:: If your website is in multiple languages, you can use the Promote - tool for every language of a single page and set specific title, + tool for every language of a single page and set specific title, description and search tags. Content is King @@ -80,8 +80,8 @@ modules to help you build your website content: Use Social Networks =================== -Social media is built for mass sharing. If lots of people share your content -on social media, then it's likely more people will link to it, +Social media is built for mass sharing. If lots of people share your content +on social media, then it's likely more people will link to it, and links are a huge factor for SEO ranking. Odoo embeds several tools to share content through social media: @@ -94,7 +94,7 @@ All you have to do is to refer all your accounts in your company settings. .. image:: seo/seo03.png :align: center - + Social Share ------------ @@ -106,17 +106,17 @@ wall. :align: center Most social media use a picture of the picture to decorate the share post. -Odoo uses the website logo by default but you can choose any other image +Odoo uses the website logo by default but you can choose any other image of your page in the Promote tool. .. image:: seo/seo05.png :align: center - + Facebook Page ------------- -Drop the building block *Facebook Page* to display a widget of your Facebook -business page and encourage visitors to follow it. +Drop the building block *Facebook Page* to display a widget of your Facebook +business page and encourage visitors to follow it. You can display the timeline, the next events and the messages. Twitter Scroller @@ -179,7 +179,7 @@ an example, the following URLs all do a 301 redirect to the above URL: product name) Some URLs have several dynamic parts, like this one (a blog category and -a post): +a post): - https://www.odoo.com/blog/company-news-5/post/the-odoo-story-56 @@ -191,7 +191,7 @@ In the above example: When an Odoo page has a pager, the page number is set directly in the URL (does not have a GET argument). This allows every page to be indexed -by search engines. Example: +by search engines. Example: - https://www.odoo.com/blog/page/3 @@ -222,7 +222,7 @@ maintaining the SEO link juice. HTTPS ----- -Search engines boost ranking of secure HTTPS/SSL websites. +Search engines boost ranking of secure HTTPS/SSL websites. So, by default all Odoo Online instances are fully based on HTTPS. If the visitor accesses your website through a non HTTPS url, it gets a 301 redirect to its HTTPS equivalent. @@ -230,7 +230,7 @@ url, it gets a 301 redirect to its HTTPS equivalent. Links: Nofollow Strategy ------------------------ -The more a page is linked from external and quality websites, +The more a page is linked from external and quality websites, the better it is for your SEO. Here are Odoo strategies to manage links: @@ -296,7 +296,7 @@ yourwebsite.com/shop), they may automatically be redirected to a translated version according to their browser language preference (e.g. yourwebsite.com/fr\_FR/shop). -Next time, it keeps a cookie of the current language to +Next time, it keeps a cookie of the current language to avoid any redirection. To force a visitor to stick to the default language, you can use the @@ -409,18 +409,18 @@ CSS is shared amongst all pages, when the visitor clicks on another page, the browser does not even have to load a new CSS file! ================================= ============================================= - **Both files in the <head>** **What the visitor gets (only one file)** + **Both files in the <head>** **What the visitor gets (only one file)** ================================= ============================================= - /\* From bootstrap.css \*/ .text-muted { - .text-muted { color: #666; - color: #777; background: yellow - background: yellow; } + /\* From bootstrap.css \*/ .text-muted { + .text-muted { color: #666; + color: #777; background: yellow + background: yellow; } } - /\* From my-theme.css \*/ - .text-muted { - color: #666; - } + /\* From my-theme.css \*/ + .text-muted { + color: #666; + } ================================= ============================================= The CSS sent by Odoo includes all CSS / Less / Sass of all pages / @@ -432,28 +432,28 @@ into a second bundle that is loaded only when the page using it is requested. An example of this is the backend that is only loaded when the visitor logs in and accesses the backend (/web). -.. note:: +.. note:: If the CSS file is very big, Odoo will split it into two smaller - files to avoid the 4095 selectors limit per sheet of Internet Explorer. + files to avoid the 4095 selectors limit per sheet of Internet Explorer. But most themes fit below this limit. **Minified:** After being pre-processed and concatenated, the resulting CSS is minified to reduce its size. ============================ ============================== - **Before minification** **After minification** + **Before minification** **After minification** ============================ ============================== - /\* some comments \*/ .text-muted {color: #666} - .text-muted { - color: #666; - } + /\* some comments \*/ .text-muted {color: #666} + .text-muted { + color: #666; + } ============================ ============================== The final result is then compressed, before being delivered to the browser. Then, a cached version is stored server-side (so we do not have -to pre-process, concatenate, minify at every request) and browser-side +to pre-process, concatenate, minify at every request) and browser-side (so the same visitor will load the CSS only once for all pages they visit). diff --git a/content/applications/websites/website/publish/multi_website.rst b/content/applications/websites/website/publish/multi_website.rst index 43c8c0f2b..b01c704c0 100644 --- a/content/applications/websites/website/publish/multi_website.rst +++ b/content/applications/websites/website/publish/multi_website.rst @@ -185,7 +185,7 @@ Publish a page in all websites ------------------------------ A new static page is created and only made available in the current -website. You can duplicate it to other websites from +website. You can duplicate it to other websites from :menuselection:`Website --> Configuration --> Pages`. To do so, leave the *Website* field empty. If you want to duplicate it in just one other website, duplicate the @@ -198,7 +198,7 @@ When you edit the page again, the change only affects the current website. A new page is duplicated and tied up to the website. The original page still being linked to all websites. -.. tip:: +.. tip:: By grouping pages by URL in the page manager, you quickly find the original page behind each edited page. diff --git a/content/contributing/development/coding_guidelines.rst b/content/contributing/development/coding_guidelines.rst index 509c3e54b..f97e5b818 100644 --- a/content/contributing/development/coding_guidelines.rst +++ b/content/contributing/development/coding_guidelines.rst @@ -950,7 +950,7 @@ The convention is to organize the code according to the following structure: - *static/src/js* - *static/src/js/tours*: end user tour files (tutorials, not tests) - + - *static/src/scss*: scss files - *static/src/xml*: all qweb templates that will be rendered in JS diff --git a/content/developer/howtos/accounting_localization.rst b/content/developer/howtos/accounting_localization.rst index 5764e96fe..fa37e8320 100644 --- a/content/developer/howtos/accounting_localization.rst +++ b/content/developer/howtos/accounting_localization.rst @@ -370,7 +370,7 @@ Some good examples: * `l10n_ch_reports/data/account_financial_html_report_data.xml <{GITHUB_ENT_PATH}/l10n_ch_reports/data/account_financial_html_report_data.xml>`_ * `l10n_be_reports/data/account_financial_html_report_data.xml <{GITHUB_ENT_PATH}/l10n_be_reports/data/account_financial_html_report_data.xml>`_ -You can check the meaning of the fields here: +You can check the meaning of the fields here: * :doc:`/developer/reference/standard_modules/account/account_report` * :doc:`/developer/reference/standard_modules/account/account_report_line` diff --git a/content/developer/howtos/rdtraining/13_inheritance.rst b/content/developer/howtos/rdtraining/13_inheritance.rst index 5d3e916cb..472ec6ff6 100644 --- a/content/developer/howtos/rdtraining/13_inheritance.rst +++ b/content/developer/howtos/rdtraining/13_inheritance.rst @@ -239,7 +239,7 @@ An example of a view inheritance extension can be found Add the ``property_ids`` field to the ``base.view_users_form`` in a new notebook page. Tip: an example an inheritance of the users' view can be found - `here <https://github.com/odoo/odoo/blob/691d1f087040f1ec7066e485d19ce3662dfc6501/addons/gamification/views/res_users_views.xml#L5-L14>`__. + `here <https://github.com/odoo/odoo/blob/691d1f087040f1ec7066e485d19ce3662dfc6501/addons/gamification/views/res_users_views.xml#L5-L14>`__. Inheritance is extensively used in Odoo due to its modular concept. Do not hesitate to read the corresponding documentation for more info! diff --git a/content/developer/howtos/rdtraining/N_security.rst b/content/developer/howtos/rdtraining/N_security.rst index 88e78b06f..95ede41da 100644 --- a/content/developer/howtos/rdtraining/N_security.rst +++ b/content/developer/howtos/rdtraining/N_security.rst @@ -8,8 +8,8 @@ Every day we hear about data leaks and attacks in the newspapers. We expect you to be aware and careful about how to avoid security breaches in your future developments. -You already defined new models in your training. Did you check the access rights and define record -rules on it ? Are you sure your module is not an open door to SQL injections ? Did you use getattr +You already defined new models in your training. Did you check the access rights and define record +rules on it ? Are you sure your module is not an open door to SQL injections ? Did you use getattr or t-raw in your code? - No or wrong access rules on models. diff --git a/content/developer/reference/backend/reports.rst b/content/developer/reference/backend/reports.rst index 361fb4ed5..92cb3bae9 100644 --- a/content/developer/reference/backend/reports.rst +++ b/content/developer/reference/backend/reports.rst @@ -277,7 +277,7 @@ the template, such as data from additional models: Custom fonts ============ -If you want to use custom fonts you will need to add your custom font and the related less/CSS to the ``web.reports_assets_common`` assets bundle. +If you want to use custom fonts you will need to add your custom font and the related less/CSS to the ``web.reports_assets_common`` assets bundle. Adding your custom font(s) to ``web.assets_common`` or ``web.assets_backend`` will not make your font available in QWeb reports. Example:: diff --git a/content/developer/reference/backend/views.rst b/content/developer/reference/backend/views.rst index 1ff6df480..56b9707fd 100644 --- a/content/developer/reference/backend/views.rst +++ b/content/developer/reference/backend/views.rst @@ -422,7 +422,7 @@ Calendar -------- Calendar views display records as events in a daily, weekly, monthly or yearly -calendar. +calendar. .. note:: By default the calendar view will be centered around the current date (today). You can pass a specific initial date to the context of the action in diff --git a/content/developer/reference/frontend/assets.rst b/content/developer/reference/frontend/assets.rst index 069a66dd4..cedce9ed9 100644 --- a/content/developer/reference/frontend/assets.rst +++ b/content/developer/reference/frontend/assets.rst @@ -53,10 +53,10 @@ Bundles ======= Odoo assets are grouped by *bundles*. Each bundle (a *list of file paths* -of specific types: `xml`, `js`, `css` or `scss`) is listed in the +of specific types: `xml`, `js`, `css` or `scss`) is listed in the :ref:`module manifest <reference/module/manifest>`. Files can be declared using `glob <https://en.wikipedia.org/wiki/Glob_(programming)>`_ syntax, meaning that -you can declare several asset files using a single line. +you can declare several asset files using a single line. The bundles are defined in each module's :file:`__manifest__.py`, with a dedicated `assets` key which contains a dictionary. The dictionary maps diff --git a/content/developer/reference/frontend/framework_overview.rst b/content/developer/reference/frontend/framework_overview.rst index 65f40df95..8395d52ce 100644 --- a/content/developer/reference/frontend/framework_overview.rst +++ b/content/developer/reference/frontend/framework_overview.rst @@ -44,11 +44,11 @@ on the web client. Code structure ============== -The ``web/static/src`` folder contains all the ``web/`` javascript (and css and +The ``web/static/src`` folder contains all the ``web/`` javascript (and css and templates) codebase. Here is a list of the most important folders: - ``core/`` most of the low level features -- ``fields/`` all field components +- ``fields/`` all field components - ``views/`` all javascript views components (``form``, ``list``, ...) - ``search/`` control panel, search bar, search panel, ... - ``webclient/`` the web client specific code: navbar, user menu, action service, ... @@ -57,7 +57,7 @@ The ``web/static/src`` is the root folder. Everything inside can simply be imported by using the ``@web`` prefix. For example, here is how one can import the ``memoize`` function located in ``web/static/src/core/utils/functions``: -.. code-block:: javascript +.. code-block:: javascript import { memoize } from "@web/core/utils/functions"; @@ -86,7 +86,7 @@ all active actions (represented in the breadcrumbs), and coordinates each change. Another interesting thing to note is the ``MainComponentsContainer``: it is -simply a component that displays all components registered in the +simply a component that displays all components registered in the ``main_components`` registry. This is how other parts of the system can extend the web client. @@ -197,14 +197,14 @@ Components and Hooks :ref:`Components <frontend/components>` and :ref:`hooks <frontend/hooks>` are ideas coming from the `Owl component system <https://github.com/odoo/owl/blob/master/doc/readme.md>`_. -Odoo components are simply owl components that are part of the web client. +Odoo components are simply owl components that are part of the web client. `Hooks <https://github.com/odoo/owl/blob/master/doc/reference/hooks.md>`_ are a way to factorize code, even if it depends on lifecycle. This is a composable/functional way to inject a feature in a component. They can be seen -as a kind of mixin. +as a kind of mixin. -.. code-block:: javascript +.. code-block:: javascript function useCurrentTime() { const state = useState({ now: new Date() }); @@ -222,7 +222,7 @@ An important concept in the Odoo javascript is the *context*: it provides a way for code to give more context to a function call or a rpc, so other parts of the system can properly react to that information. In some way, it is like a bag of information that is propagated everywhere. It is useful in some situations, such -as letting the Odoo server know that a model rpc comes from a specific form view, +as letting the Odoo server know that a model rpc comes from a specific form view, or activating/disabling some features in a component. There are two different contexts in the Odoo web client: the *user context* and @@ -258,7 +258,7 @@ It contains the following information: :widths: 20 20 60 :header-rows: 1 - * - Name + * - Name - Type - Description * - `allowed_company_ids` @@ -269,7 +269,7 @@ It contains the following information: - the user language code (such as "en_us") * - `tz` - `string` - - the user current timezone (for example "Europe/Brussels") + - the user current timezone (for example "Europe/Brussels") In practice, the `orm` service automatically adds the user context to each of its requests. This is why it is usually not necessary to import it directly in @@ -405,11 +405,11 @@ class: domain.contains({ a: -1, b: 2, c: 3 }); // false // next expression returns ["|", ("a", "=", 1), ("b", "<=", 3)] - Domain.or([[["a", "=", 1]], "[('b', '<=', 3)]"]).toString(); + Domain.or([[["a", "=", 1]], "[('b', '<=', 3)]"]).toString(); Here is the `Domain` class description: -.. js:class:: Domain([descr]) +.. js:class:: Domain([descr]) :param descr: a domain description :type descr: string | any[] | Domain @@ -568,7 +568,7 @@ It is mostly interesting for testing purposes: all code using the browser object can be tested easily by mocking the relevant functions for the duration of the test. -It contains the following content: +It contains the following content: .. list-table:: @@ -617,7 +617,7 @@ The `debug` mode current value can be read in the :ref:`environment<frontend/fra To show menus, fields or view elements only in debug mode, you should target the group `base.group_no_one`: - + .. code-block:: xml <field name="fname" groups="base.group_no_one"/> diff --git a/content/developer/reference/frontend/hooks.rst b/content/developer/reference/frontend/hooks.rst index 50ebbab89..e3f70bc2d 100644 --- a/content/developer/reference/frontend/hooks.rst +++ b/content/developer/reference/frontend/hooks.rst @@ -6,7 +6,7 @@ Hooks `Owl hooks <https://github.com/odoo/owl/blob/master/doc/reference/hooks.md>`_ are a way to factorize code, even if it depends on some component lifecycle. Most hooks -provided by Owl are related to the lifecycle of a component, but some of them (such as +provided by Owl are related to the lifecycle of a component, but some of them (such as `useComponent <https://github.com/odoo/owl/blob/master/doc/reference/hooks.md#usecomponent>`_) provide a way to build specific hooks. diff --git a/content/developer/reference/frontend/javascript_modules.rst b/content/developer/reference/frontend/javascript_modules.rst index 96dc72ca7..316acf4f5 100644 --- a/content/developer/reference/frontend/javascript_modules.rst +++ b/content/developer/reference/frontend/javascript_modules.rst @@ -37,11 +37,11 @@ Plain javascript files can contain arbitrary content. It is advised to use the })(); The advantages of such files is that we avoid leaking local variables to the -global scope. +global scope. Clearly, plain javascript files do not offer the benefits of a module system, so one needs to be careful about the order in the bundle (since the browser will -execute them precisely in that order). +execute them precisely in that order). .. note:: In Odoo, all external libraries are loaded as plain javascript files. diff --git a/content/developer/reference/frontend/mobile.rst b/content/developer/reference/frontend/mobile.rst index 54217e309..ab14ff432 100644 --- a/content/developer/reference/frontend/mobile.rst +++ b/content/developer/reference/frontend/mobile.rst @@ -9,7 +9,7 @@ Introduction ============ In Odoo 10.0 we released a mobile app which allows you to access all **Odoo apps** -(even your customized modules). +(even your customized modules). The application is a combination of **Odoo Web** and **Native Mobile components**. In other words it is a Odoo Web instance loaded inside a native, mobile, WebView container. @@ -21,7 +21,7 @@ access all available mobile features. .. warning:: These features work with **Odoo Enterprise 10.0+** only -How does it work? +How does it work? ================= Internal workings of the mobile application: @@ -53,7 +53,7 @@ Just like the Odoo Web Framework, the Mobile API can be used anywhere by getting .. image:: mobile/odoo_mobile_api.png The mobile RPC object provides a list of methods that are available (this only works with the mobile -app). +app). Check if the method is available and then execute it. @@ -136,7 +136,7 @@ area and the notification drawer are system-controlled areas that the user can view at any time. .. code-block:: javascript - + mobile.showNotification({'title': 'Simple Notification', 'message': 'This is a test for a simple notification'}) .. image:: mobile/mobile_notification.png @@ -152,7 +152,7 @@ Create contact in device Create a new device contact with the given contact details. .. code-block:: javascript - + var contact = { 'name': 'Michel Fletcher', 'mobile': '9999999999', @@ -205,7 +205,7 @@ Switching account in device Use switchAccount to switch from one account to another on the device. .. code-block:: javascript - + mobile.methods.switchAccount(); .. image:: mobile/mobile_switch_account.png diff --git a/content/developer/reference/frontend/owl_components.rst b/content/developer/reference/frontend/owl_components.rst index 9046222f8..b3c2e5c1f 100644 --- a/content/developer/reference/frontend/owl_components.rst +++ b/content/developer/reference/frontend/owl_components.rst @@ -7,7 +7,7 @@ Owl Components The Odoo Javascript framework uses a custom component framework called Owl. It is a declarative component system, loosely inspired by Vue and React. Components are defined using :doc:`QWeb templates <qweb>`, enriched with some Owl -specific directives. The official +specific directives. The official `Owl documentation <https://github.com/odoo/owl/blob/master/doc/readme.md>`_ contains a complete reference and a tutorial. @@ -28,7 +28,7 @@ page will only provide Odoo specific information. But first, let us see how we can make a simple component in Odoo. .. code-block:: javascript - + const { useState } = owl.hooks; const { xml } = owl.tags; @@ -66,7 +66,7 @@ loading the javascript/css files, and loading the templates into Owl. Here is how the component above should be defined: .. code-block:: javascript - + const { useState } = owl.hooks; class MyComponent extends Component { @@ -133,7 +133,7 @@ in Odoo directly uses the constructor method. Instead, components should use the } } -Another good practice is to use a consistent convention for template names: +Another good practice is to use a consistent convention for template names: `addon_name.ComponentName`. This prevents name collision between odoo addons. Reference List @@ -175,7 +175,7 @@ Description ~~~~~~~~~~~ This is a component that can perform actions when an element is swiped -horizontally. The swiper is wrapping a target element to add actions to it. +horizontally. The swiper is wrapping a target element to add actions to it. The action is executed once the user has released the swiper passed half of its width. @@ -191,7 +191,7 @@ and would not want to duplicate the template. It is possible to do just that. If you want to extend the behavior of an existing element, you must place the element inside, by wrapping it directly. Also, you can conditionnally add props to manage when the -element might be swipable or not. +element might be swipable or not. You can use the component to interact easily with records, messages, items in lists and much more. @@ -200,18 +200,18 @@ You can use the component to interact easily with records, messages, items in li :alt: Example of ActionSwiper usage :align: center -The following example creates a basic ActionSwiper component. +The following example creates a basic ActionSwiper component. Here, the swipe is enabled in both directions. .. code-block:: xml - - <ActionSwiper + + <ActionSwiper onRightSwipe=" { action: '() => Delete item', icon: 'fa-delete', bgColor: 'bg-danger', - }" + }" onLeftSwipe=" { action: '() => Star item', @@ -233,7 +233,7 @@ Props :widths: 20 20 60 :header-rows: 1 - * - Name + * - Name - Type - Description * - `onLeftSwipe` @@ -246,7 +246,7 @@ Props You can use both `onLeftSwipe` and `onRightSwipe` props at the same time. Those `Object`'s must contain: - + - `action`, which is the callable `Function` serving as a callback. Once the swipe has been completed in the given direction, that action is performed. @@ -258,7 +258,7 @@ Those `Object`'s must contain: `info`, `secondary`, `success` or `warning`). Those values must be given to define the behavior and the visual aspect - of the swiper. + of the swiper. Example: Extending existing components ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -268,7 +268,7 @@ in the ActionSwiper component. Here, a swiper has been added to mark a message as read in mail. .. code-block:: xml - + <xpath expr="//*[hasclass('o_Message')]" position="after"> <ActionSwiper onRightSwipe="messaging.device.isMobile and messageView.message.isNeedaction ? @@ -312,7 +312,7 @@ Props :widths: 20 20 60 :header-rows: 1 - * - Name + * - Name - Type - Description * - `value` @@ -330,7 +330,7 @@ Dropdown Location ~~~~~~~~ -`@web/core/dropdown/dropdown` and `@web/core/dropdown/dropdown_item` +`@web/core/dropdown/dropdown` and `@web/core/dropdown/dropdown_item` Description ~~~~~~~~~~~ diff --git a/content/developer/reference/frontend/patching_code.rst b/content/developer/reference/frontend/patching_code.rst index cd9b5def9..e74fb4d7f 100644 --- a/content/developer/reference/frontend/patching_code.rst +++ b/content/developer/reference/frontend/patching_code.rst @@ -33,7 +33,7 @@ The patch function is located in `@web/core/utils/patch`: Most patch operations provide access to the parent value by using the `_super` property (see below in the examples). To do that, the `patch` method wraps each pair key/value in a getter that dynamically binds `_super`. - + The only option is `pure (boolean)`. If set to `true`, the patch operation does not bind the `_super` property. diff --git a/content/developer/reference/frontend/qweb.rst b/content/developer/reference/frontend/qweb.rst index a6496021e..2177749e0 100644 --- a/content/developer/reference/frontend/qweb.rst +++ b/content/developer/reference/frontend/qweb.rst @@ -231,7 +231,7 @@ exists in 3 different forms: .. tip:: There are two equivalent syntaxes for format strings: ``"plain_text {{code}}"`` (aka jinja-style) and ``"plain_text #{code}"`` (aka ruby-style). - + :samp:`t-att=mapping` if the parameter is a mapping, each (key, value) pair generates a new attribute and its value:: diff --git a/content/developer/reference/frontend/registries.rst b/content/developer/reference/frontend/registries.rst index 8fdca60d3..4a3e3a1c7 100644 --- a/content/developer/reference/frontend/registries.rst +++ b/content/developer/reference/frontend/registries.rst @@ -10,7 +10,7 @@ into a registry whenever it needs a definition for some object (such as fields, views, client actions or services). Customizing the web client is then simply done by adding specific values in the correct registry. -.. code-block:: javascript +.. code-block:: javascript import { Registry } from "@web/core/registry"; @@ -25,7 +25,7 @@ obtained by the `category` method. If the sub registry does not exist yet, it is created on the fly. All registries used by the web client are obtained in such a way from one root registry, exported in `@web/core/registry`. -.. code-block:: javascript +.. code-block:: javascript import { registry } from "@web/core/registry"; @@ -58,7 +58,7 @@ Registry API also triggers an `UPDATE` event. Returns the same registry, so `add` method calls can be chained. - + .. js:method:: get(key[, defaultValue]) :param string key: key for the entry @@ -67,7 +67,7 @@ Registry API Returns the value corresponding to the `key` argument. If the registry does not contain that key, this method returns `defaultValue` if given, or throws an error otherwise. - + .. js:method:: contains(key) :param string key: key for the entry @@ -78,21 +78,21 @@ Registry API .. js:method:: getAll() :returns: any[] - + Returns the list of all elements in the registry. It is ordered according to the sequence numbers. .. js:method:: remove(key) :param string key: the key for the entry that should be removed - + Removes a key/value pair from the registry. This operation triggers an `UPDATE` event. .. js:method:: category(subcategory) :param string subcategory: the name for the sub category - :returns: Registry + :returns: Registry Returns the sub registry associated with the `subcategory`. If it does not exist yet, the sub registry is created on the fly. @@ -135,7 +135,7 @@ for more details. Formatter registry ------------------ -The `formatters` registry contains functions to format values. Each formatter +The `formatters` registry contains functions to format values. Each formatter has the following API: .. js:function:: format(value[, options]) @@ -166,7 +166,7 @@ API interface { Component: Owl Component class props?: any - } + } For example, the `LoadingIndicator` component can be added in the registry like @@ -183,7 +183,7 @@ this: Parser registry --------------- -The `parsers` registry contains functions to parse values. Each parser +The `parsers` registry contains functions to parse values. Each parser has the following API: .. js:function:: parse(value[, options]) @@ -192,7 +192,7 @@ has the following API: :param value: a string representing a value :type value: string :param Object options: various options (parser specific) - :returns: T a valid value + :returns: T a valid value Parses a string and returns a value. If the string does not represent a valid value, parsers can fail and throw errors. diff --git a/content/developer/reference/frontend/services.rst b/content/developer/reference/frontend/services.rst index d9615f746..86ba638c0 100644 --- a/content/developer/reference/frontend/services.rst +++ b/content/developer/reference/frontend/services.rst @@ -47,7 +47,7 @@ Defining a service A service needs to implement the following interface: .. js:data:: dependencies - + Optional list of strings. It is the list of all dependencies (other services) that this service needs @@ -56,7 +56,7 @@ A service needs to implement the following interface: :param Environment env: the application environment :param Object deps: all requested dependencies :returns: value of service or Promise<value of service> - + This is the main definition for the service. It can return either a value or a promise. In that case, the service loader simply waits for the promise to resolve to a value, which is then the value of the service. @@ -66,7 +66,7 @@ A service needs to implement the following interface: set to ``null`` in ``env.services``. .. js:data:: async - + Optional value. If given, it should be `true` or a list of strings. Some services need to provide an asynchronous API. For example, the `rpc` @@ -166,7 +166,7 @@ API :param number ttl: optional. the time in seconds before the cookie will be deleted (default=1 year) Sets the cookie `name` to the value `value` with a max age of `ttl` - + .. js:function:: deleteCookie(name) :param string name: name of the cookie @@ -204,7 +204,7 @@ Here's how this can be displayed: message: "Boom! Team record for the past 30 days.", }); -.. warning :: +.. warning :: The hook `useEffect` is not related to the effect service. API @@ -242,7 +242,7 @@ RainbowMan :widths: 20 40 40 :header-rows: 1 - * - Name + * - Name - Type - Description * - `params.Component` @@ -274,7 +274,7 @@ RainbowMan `"fast"` will make rainbowman dissapear quickly. - `"medium"` and `"slow"` will wait little longer before disappearing (can be used when `params.message` is longer). + `"medium"` and `"slow"` will wait little longer before disappearing (can be used when `params.message` is longer). `"no"` will keep rainbowman on screen until user clicks anywhere outside rainbowman. @@ -302,13 +302,13 @@ The function must follow this API: :returns: `({Component, props} | void)` A component and its props or nothing. -This function must create a component and return it. This component is mounted inside the +This function must create a component and return it. This component is mounted inside the effect component container. Example ~~~~~~~ -Let's say we want to add an effect that add a sepia look at the page. +Let's say we want to add an effect that add a sepia look at the page. .. code-block:: javascript @@ -340,7 +340,7 @@ Let's say we want to add an effect that add a sepia look at the page. effectRegistry.add("sepia", sepiaEffectProvider); -And then, call it somewhere you want and you will see the result. +And then, call it somewhere you want and you will see the result. Here, it is called in webclient.js to make it visible everywhere for the example. .. code-block:: javascript @@ -396,7 +396,7 @@ Example const httpService = useService("http"); const data = await httpService.get("https://something.com/posts/1"); - // ... + // ... await httpService.post("https://something.com/posts/1", { title: "new title", content: "new content" }); .. _frontend/services/notification: @@ -411,17 +411,17 @@ Overview * Dependencies: None The `notification` service allows to display notifications on the screen. - + .. code-block:: javascript const notificationService = useService("notification"); - notificationService.add("I'm a very simple notification"); - + notificationService.add("I'm a very simple notification"); + API ~~~ .. js:function:: add(message[, options]) - + :param string message: the notification message to display :param object options: the options of the notification :returns: a function to close the notification @@ -481,7 +481,7 @@ Examples A notification for when a sale deal is made with a button to go some kind of commission page. .. code-block:: javascript - + // in setup this.notificationService = useService("notification"); this.actionService = useService("actionService"); @@ -538,16 +538,16 @@ API The current route can be accessed with the ``current`` key. It is an object with the following information: - + * `pathname (string)`: the path for the current location (most likely `/web` ) * `search (object)`: a dictionary mapping each search keyword (the querystring) from the url to its value. An empty string is the value if no value was explicitely given - * `hash (object)`: same as above, but for values described in the hash. + * `hash (object)`: same as above, but for values described in the hash. For example: -.. code-block:: javascript +.. code-block:: javascript // url = /web?debug=assets#action=123&owl&menu_id=174 const { pathname, search, hash } = env.services.router.current; @@ -590,10 +590,10 @@ For example: Finally, the `redirect` method will redirect the browser to a specified url: .. js:function:: redirect(url[, wait]) - + :param string url: a valid url :param boolean wait: if true, wait for the server to be ready, and redirect after - + Redirect the browser to `url`. This method reloads the page. The `wait` argument is rarely used: it is useful in some cases where we know that the server will be unavailable for a short duration, typically just after an addon @@ -620,14 +620,14 @@ argument and optionally, a ``params`` object can be given as a second argument. .. code-block:: javascript - // in setup + // in setup this.rpc = useService("rpc"); // somewhere else, in an async function: const result = await this.rpc("/my/route", { some: "value" }); .. note:: - + Note that the ``rpc`` service is considered a low-level service. It should only be used to interact with Odoo controllers. To work with models (which is by far the most important usecase), one should use the ``orm`` service @@ -641,9 +641,9 @@ API :param string route: route targeted by the request :param Object params: parameters sent to the server :param Object settings (optional): request settings (see below) - + The ``settings`` object can contain: - + - ``xhr``, which should be a ``XMLHTTPRequest`` object. In that case, the ``rpc`` method will simply use it instead of creating a new one. This is useful when one accesses advanced features of the `XMLHTTPRequest` API. @@ -673,7 +673,7 @@ When a rpc fails, then: * the promise representing the rpc is rejected, so the calling code will crash, unless it handles the situation -* +* an event ``RPC_ERROR`` is triggered on the main application bus. The event payload contains a description of the cause of the error: @@ -683,10 +683,10 @@ When a rpc fails, then: * ``type = 'server'`` * ``message(string)`` - * + * ``code(number)`` - * + * ``name(string)`` (optional, used by the error service to look for an appropriate dialog to use when handling the error) @@ -715,13 +715,13 @@ Whenever the user clicks on an anchor in the web client, this service automatica to the target (if appropriate). The service adds an event listener to get `click`'s on the document. The service checks -if the selector contained in its href attribute is valid to distinguish anchors and Odoo +if the selector contained in its href attribute is valid to distinguish anchors and Odoo actions (e.g. `<a href="#target_element"></a>`). It does nothing if it is not the case. -An event `SCROLLER:ANCHOR_LINK_CLICKED` is triggered on the main application bus if the click seems to be +An event `SCROLLER:ANCHOR_LINK_CLICKED` is triggered on the main application bus if the click seems to be targeted at an element. The event contains a custom event containing the `element` matching and its `id` as a reference. -It may allow other parts to handle a behavior relative to anchors themselves. The original event is also -given as it might need to be prevented. If the event is not prevented, then the user interface will +It may allow other parts to handle a behavior relative to anchors themselves. The original event is also +given as it might need to be prevented. If the event is not prevented, then the user interface will scroll to the target element. API @@ -733,7 +733,7 @@ The following values are contained in the `anchor-link-clicked` custom event exp :widths: 25 25 50 :header-rows: 1 - * - Name + * - Name - Type - Description * - `element` @@ -796,7 +796,7 @@ Its API is: This is a string representing the current title. It is structured in the following way: ``value_1 - ... - value_n`` where each `value_i` is a (non null) value found in the `Parts` object (returned by the `getParts` function) - + .. js:function:: getParts :returns: Parts the current `Parts` object maintained by the title service @@ -835,9 +835,9 @@ Overview ~~~~~~~~ * Technical name: `user` -* Dependencies: `rpc` +* Dependencies: `rpc` -The `user` service provides a bunch of data and a few helper functions concerning +The `user` service provides a bunch of data and a few helper functions concerning the connected user. @@ -848,7 +848,7 @@ API :widths: 25 25 50 :header-rows: 1 - * - Name + * - Name - Type - Description * - ``context`` @@ -868,7 +868,7 @@ API - Whether the user is part of the system group (`base.group_system`) * - ``lang`` - ``string`` - - language used + - language used * - ``name`` - ``string`` - Name of the user diff --git a/content/developer/reference/standard_modules/account/account_chart_template.rst b/content/developer/reference/standard_modules/account/account_chart_template.rst index 70d3bfe83..548fc517a 100644 --- a/content/developer/reference/standard_modules/account/account_chart_template.rst +++ b/content/developer/reference/standard_modules/account/account_chart_template.rst @@ -43,7 +43,7 @@ Chart Template .. automodel:: odoo.addons.l10n_multilang.models.account.AccountChartTemplate - + Multi language support for Chart of Accounts, Taxes, Tax Codes, Journals, Accounting Templates, Analytic Chart of Accounts and Analytic Journals. diff --git a/content/legal/terms/i18n/enterprise_fr.rst b/content/legal/terms/i18n/enterprise_fr.rst index 44d4e552c..dc5bca373 100644 --- a/content/legal/terms/i18n/enterprise_fr.rst +++ b/content/legal/terms/i18n/enterprise_fr.rst @@ -265,7 +265,7 @@ Disponibilité +++++++++++++ Les demandes d'assistances peuvent être soumises à tout moment en ligne via https://www.odoo.com/help, -ou par téléphone directement aux différents bureaux d'Odoo SA, ou en cas de travail avec un +ou par téléphone directement aux différents bureaux d'Odoo SA, ou en cas de travail avec un Partenaire Odoo, le canal préconisé par ce partenaire, pendant les heures de bureau correspondantes. diff --git a/extensions/autodoc_field/__init__.py b/extensions/autodoc_field/__init__.py index 50d6933a0..4f14b56c2 100644 --- a/extensions/autodoc_field/__init__.py +++ b/extensions/autodoc_field/__init__.py @@ -43,7 +43,7 @@ class OdooClassDocumenter(ClassDocumenter): title = f"Original definition from `{module}`" else: title = f"Additional fields with `{module}`" - + self.add_line(title, sourcename) self.add_line('=' * len(title), sourcename) self.add_line('', sourcename) diff --git a/redirects/MANUAL.md b/redirects/MANUAL.md index ff46331a9..c8580bd7b 100644 --- a/redirects/MANUAL.md +++ b/redirects/MANUAL.md @@ -27,7 +27,7 @@ information. a block of redirect rules that start with `applications/sales/sales` if you are adding a redirect rule for a page in the Sales app. If the block does not exist yet, create it. Ideally, there should be one block per app or scope and redirect rules should be sorted alphabetically. -3. Add a new line for your redirect rule at the end of the block. The line should follow this +3. Add a new line for your redirect rule at the end of the block. The line should follow this pattern: `path/to/old/file.rst path/to/new/file.rst # optional comment`